About time synchronisation¶
Network Time Protocol (NTP) is a networking protocol for synchronizing time over a network. Basically, a client requests the current time from a server, and uses it to set its own clock.
Behind this simple description, there is a lot of complexity. There are three tiers of NTP servers; tier one NTP servers are connected to atomic clocks, while tier two and tier three three servers spread the load of actually handling requests across the Internet.
The client software is also a lot more complex than you might expect. It must factor in communication delays and adjust the time in a way that does not upset all the other processes that run on the server. Luckily, all that complexity is hidden from you!
Since Ubuntu 25.10 chrony is used to synchronize time by default. See our guides, if you would like to know how to synchronize time with chrony or use chrony to serve NTP.
Users can optionally use timedatectl and timesyncd.
Note
Chrony is replacing systemd-timesyncd as the default in Ubuntu 25.10 and ntpdate/ntpd, which was the default before Ubuntu 18.04 LTS.
On upgraded systems (from Ubuntu 25.04 or below) systemd-timesyncd might still be the active time-daemon and thus render the new chrony service disabled. Similarly, while the use of ntpd is no longer recommended, it might still be installed to retain any previous behavior/config on upgrades (up to Ubuntu 22.04 LTS).
How time synchronization works¶
About chrony¶
chrony replaces not only ntpdate, but also the Simple Network Time Protocol (SNTP) client of timesyncd, still allowing for basic usage of systemd’s timedatectl. So, on top of the one-shot action that ntpdate provided on boot and network activation, chrony now regularly checks and keeps your local time in sync. It also stores time updates locally, so that after reboots the time monotonically advances (if applicable).
About timedatectl¶
If chrony is installed, timedatectl can still be used to configure basic settings, such as the timezone. But more complex configuration needs to be set up using the chronyc command. This ensures that no two time-syncing services can conflict with each other.
chrony will generally keep your time in sync and can be set up as a time server, timesyncd can help with simpler cases. But if you had one of a few known special ntpdate use cases, consider the following:
If you require a one-shot sync, use:
chronyd -qIf you require a one-shot time check (without setting the time), use:
chronyd -Q