Logo
  • Ubuntu
  • CentOS
  • Debian
  • Fedora
  • RedHat

How to Synchronize Time with Chrony NTP in Linux - DesignLinux

Nov 15 2022
designlinux 0 Comments

The Network Time Protocol (NTP) is a protocol used to synchronize computer system clocks automatically over a network. The machine can have the system clock use Coordinated Universal Time (UTC) rather than local time.

Maintaining accurate time on Linux systems, especially servers is an important task for many reasons. For example, in a networked environment, accurate timekeeping is required for accurate timestamps in packets and system logs for root-cause analysis, determining when problems occurred, and finding correlations.

Chrony is now the default NTP implementation package on the latest versions of RHEL-based distributions such as CentOS Stream, Fedora, Rocky Linux & AlmaLinux, and Debian-based distributions such as Ubuntu & Linux Mint, among others, and comes pre-installed by default.

The Chrony package consists of chronyd, a daemon that runs in userspace, and chronyc a command-line program for monitoring and controlling chronyd.

Chrony is a versatile NTP implementation and performs well in a wide range of conditions (check out the comparison of the chrony suite to other NTP implementations). It can be used to synchronize the system clock with NTP servers (act as a client), with a reference clock (e.g a GPS receiver), or with a manual time input. It can also be employed as an NTPv4 (RFC 5905) server or peer to provide a time service to other computers in the network.

In this article, you will learn how to synchronize server time with NTP in Linux using chrony.

Installing Chrony in Linux Server

In most Linux systems, the chrony command is not installed by default. To install it, execute the below command.

$ sudo yum install chrony         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo apt install chrony         [On Debian, Ubuntu and Mint]
Install Chrony in Linux
Install Chrony on Linux

The default location for the chrony daemon is /usr/sbin/chronyd and the command line program will be installed to /usr/bin/chronyc.

Once the installation is complete, start the chrony service and enable it to automatically start at system boot, then check if it is up and running.

# systemctl enable --now chronyd
# systemctl status chronyd
Check Chrony Status
Check Chrony Status

To cross-check if chrony is now up and running fine and to see the number of servers and peers that are connected to it, run the following chronyc command.

# chronyc activity
Check Chrony Activity
Check Chrony Activity

Checking Chrony Synchronization in Linux

To display information (list of servers available, status, and offsets from the local clock and the source) about the current time sources that chronyd is accessing, run the following command with the -v flag shows the description for each column.

# chronyc sources
OR
# chronyc sources -v
Check Chronyd Time Sources
Check Chronyd Time Sources

Concerning the previous command, to display other useful information for each of the sources currently being examined by chronyd (such as the drift rate and offset estimation process), use the sourcestats command.

# chronyc sourcestats
OR
# chronyc sourcestats -v
Check Chronyd Source Stats
Check Chronyd Source Stats

To check chrony tracking, run the following command.

# chronyc tracking

In the output of this command, the reference ID specifies the name (or IP address) if available, of the server to which the computer is currently synchronized, out of all the available servers.

Display Chrony Tracking
Display Chrony Tracking

Configuring Chrony Time Sources in Linux

The main chrony configuration file is located at /etc/chrony.conf (CentOS/RHEL/Fedora) or /etc/chrony/chrony.conf (Ubuntu/Debian).

When installing a Linux OS in the cloud, your system should have some default servers or a pool of servers added during the installation process. To add or change the default servers, open the configuration file for editing:

# vi /etc/chrony.conf
OR
# vi /etc/chrony/chrony.conf

You can either add several servers using the server directive as shown.

server 0.europe.pool.ntp.org iburst
server 1.europe.pool.ntp.org iburst
server 2.europe.pool.ntp.org ibusrt
server 3.europe.pool.ntp.org ibusrt
Add NTP Servers
Add NTP Servers

or in most cases, it’s best to use ntppool.org to find an NTP server. This allows the system to try to find the closest available servers for you. To add a pool, use the pool directive:

pool 0.pool.ntp.org burst
Add a Pool of NTP Servers
Add a Pool of NTP Servers

There are many other options you can configure in the file. After making changes, restart the chrony service.

$ sudo systemctl restart chrony		
OR
# systemctl restart chronyd

To show information about the current time sources that chronyd is querying, run the following command once more.

# chronyc sources
View Chronyd Time Sources
View Chronyd Time Sources

To check the chrony tracking status, run the following command.

# chronyc tracking
Check Chrony Synchronizing Status
Check Chrony Synchronizing Status

To display the current time on your system, check whether the system clock is synchronized and whether NTP is indeed active, run the timedatectl command:

# timedatectl
Check Current Server Time
Check the Current Server Time

That brings us to the end of this guide. If you have any questions, reach us via the comment section below. For more information, check out: using the chrony suite to configure NTP from the RHEL documentation or using chrony to configure NTP from the Ubuntu official blog.

Related

Tags: CentOS Tips, Debian Tips, RHEL Tips, Ubuntu Tips

An Easy Way to Hide Files and Directories in Linux

Prev Post

How to Install Latest Python Version in Ubuntu

Next Post
Archives
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • July 2022
  • June 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
Categories
  • AlmaLinux
  • Android
  • Ansible
  • Apache
  • Arch Linux
  • AWS
  • Backups
  • Bash Shell
  • Bodhi Linux
  • CentOS
  • CentOS Stream
  • Chef
  • Cloud Software
  • CMS
  • Commandline Tools
  • Control Panels
  • CouchDB
  • Data Recovery Tools
  • Databases
  • Debian
  • Deepin Linux
  • Desktops
  • Development Tools
  • Docker
  • Download Managers
  • Drupal
  • Editors
  • Elementary OS
  • Encryption Tools
  • Fedora
  • Firewalls
  • FreeBSD
  • FTP
  • GIMP
  • Git
  • Hadoop
  • HAProxy
  • Java
  • Jenkins
  • Joomla
  • Kali Linux
  • KDE
  • Kubernetes
  • KVM
  • Laravel
  • Let's Encrypt
  • LFCA
  • Linux Certifications
  • Linux Commands
  • Linux Desktop
  • Linux Distros
  • Linux IDE
  • Linux Mint
  • Linux Talks
  • Lubuntu
  • LXC
  • Mail Server
  • Manjaro
  • MariaDB
  • MongoDB
  • Monitoring Tools
  • MySQL
  • Network
  • Networking Commands
  • NFS
  • Nginx
  • Nodejs
  • NTP
  • Open Source
  • OpenSUSE
  • Oracle Linux
  • Package Managers
  • Pentoo
  • PHP
  • Podman
  • Postfix Mail Server
  • PostgreSQL
  • Python
  • Questions
  • RedHat
  • Redis Server
  • Rocky Linux
  • Security
  • Shell Scripting
  • SQLite
  • SSH
  • Storage
  • Suse
  • Terminals
  • Text Editors
  • Top Tools
  • Torrent Clients
  • Tutorial
  • Ubuntu
  • Udemy Courses
  • Uncategorized
  • VirtualBox
  • Virtualization
  • VMware
  • VPN
  • VSCode Editor
  • Web Browsers
  • Web Design
  • Web Hosting
  • Web Servers
  • Webmin
  • Windows
  • Windows Subsystem
  • WordPress
  • Zabbix
  • Zentyal
  • Zorin OS
Visits
  • 1
  • 71
  • 1,054,843

DesignLinux.com © All rights reserved

Go to mobile version