Chrony is the recommended Network Time Protocol (NTP) implementation for modern Linux distributions. Chrony synchronizes the system clock with configured NTP servers using UDP port 123.
Important Notes
- Use at least two NTP servers whenever possible.
- Internal enterprise NTP servers should be preferred over public NTP servers.
- Ensure UDP port 123 is permitted between clients and NTP servers.
- All LDAP providers, consumers, proxy servers, and authentication systems should synchronize to the same NTP source.
- Time synchronization is critical for TLS certificate validation, Kerberos authentication, log correlation, monitoring, and replication troubleshooting.
Set the Timezone
Display the current timezone configuration:
timedatectlList available timezones:
timedatectl list-timezonesExample:
timedatectl list-timezones | grep New_YorkSet the timezone:
sudo timedatectl set-timezone America/New_YorkVerify the change:
timedatectlOutput:
Local time: Tue 2026-06-01 09:30:15 EDT
Universal time: Tue 2026-06-01 13:30:15 UTC
RTC time: Tue 2026-06-01 13:30:15
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
NTP service: activeInstall Chrony
RHEL, Rocky Linux, AlmaLinux, CentOS Stream
sudo dnf install chrony -yDebian and Ubuntu
sudo apt update
sudo apt install chrony -ySUSE Linux Enterprise Server (SLES)
sudo zypper install chronyEnable and Start the Chrony Service
RHEL, Rocky Linux, AlmaLinux, CentOS Stream, SLES
sudo systemctl enable --now chronydVerify service status:
sudo systemctl status chronydOutput:
● chronyd.service - NTP client/server
Loaded: loaded
Active: active (running)Debian and Ubuntu
sudo systemctl enable --now chronyVerify service status:
sudo systemctl status chronyOutput:
● chrony.service - chrony, an NTP client/server
Loaded: loaded
Active: active (running)Configure NTP Servers
RHEL, Rocky Linux, AlmaLinux, CentOS Stream, SLES
Edit:
sudo vi /etc/chrony.confDebian and Ubuntu
Edit:
sudo vi /etc/chrony/chrony.confExample configuration:
server ntp1.company.com iburst
server ntp2.company.com iburstOr use public NTP pool servers:
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburstRestart Chrony after making changes:
RHEL/Rocky/SLES:
sudo systemctl restart chronydDebian/Ubuntu:
sudo systemctl restart chronyVerify Time Synchronization
Display synchronization status:
chronyc trackingExample output:
Reference ID : C0A80101
Stratum : 2
System time : synchronized
Last offset : 0.000123 secondsDisplay configured NTP sources:
chronyc sources -vExample output:
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp1.company.com 2 6 377 42 +15us[ +20us] +/- 1ms
^+ ntp2.company.com 2 6 377 44 +18us[ +23us] +/- 2msVerify synchronization using systemd:
timedatectlOutput:
System clock synchronized: yes
NTP service: activeForce an Immediate Time Correction
If the server has significant clock drift:
sudo chronyc makestepVerify synchronization:
chronyc trackingTroubleshooting
Check Chrony Service Status
RHEL/Rocky/SLES:
systemctl status chronydDebian/Ubuntu:
systemctl status chronyCheck NTP Sources
chronyc sources -vCheck Synchronization Status
chronyc trackingReview Logs
RHEL/Rocky/SLES:
journalctl -u chronydDebian/Ubuntu:
journalctl -u chronyVerify Network Connectivity
Chrony communicates using UDP port 123.
Verify DNS resolution:
host ntp1.company.comVerify firewall and network connectivity to configured NTP servers.