
In the world of computing, precise timekeeping isn’t just a convenience—it’s a cornerstone of system stability and security.
For Ubuntu systems, the Network Time Protocol (NTP) is the silent hero that keeps your server’s clock perfectly aligned with a reliable global time source.
This guide provides a comprehensive walkthrough of how to check NTP status in Ubuntu, covering the three primary clients: systemd-timesyncd, chrony, and ntpd.
Accurate time is critical for everything from deciphering log files and managing file timestamps to executing cryptographic operations and coordinating distributed systems.
A time discrepancy can cause a cascade of cryptic errors that are notoriously difficult to troubleshoot. Fortunately, Ubuntu equips you with powerful command-line tools to monitor and verify your time synchronization.
Table of Contents
Meet Ubuntu’s NTP Clients
Before diving in, it’s important to know which NTP client your system is likely using. Modern Ubuntu systems use one of three, and only one should be active at any given time to avoid conflicts.
- systemd-timesyncd (timesyncd): The default client on modern Ubuntu desktop and server editions. It is a lightweight SNTP client designed for simplicity and is sufficient for most general-purpose systems.
- Chrony (
chronyd): A robust and modern NTP client, often preferred for servers, virtual machines, and systems with intermittent network connections. It synchronizes time faster and more accurately than traditional clients. - NTPd (
ntpd): The classic, long-standing NTP daemon. While largely superseded bychronyin newer installations, it remains a powerful and reliable choice still found in many established environments.
First Step: Identify Your Active NTP Service
To find out which service is managing time on your system, run the following command. It will check the status of all three potential services.
systemctl status systemd-timesyncd chrony ntp
Look for the service that is listed as active (running). Once you’ve identified it, proceed to the corresponding section below.
Method 1: systemd-timesyncd — The Simple Default
If systemd-timesyncd is active, the timedatectl command is your all-in-one tool for checking the status.
See also: Mastering the Linux Command Line — Your Complete Free Training Guide
Open a terminal and run:
timedatectl
This command gives you a complete overview of the system’s clock settings.
Example Output (Synchronized): The two key lines to look for are System clock synchronized: yes and NTP service: active.
Local time: Fri 2025-08-15 14:10:25 PDT
Universal time: Fri 2025-08-15 21:10:25 UTC
RTC time: Fri 2025-08-15 21:10:26
Time zone: America/Los_Angeles (PDT, -0700)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
If the NTP service is inactive, you can easily enable it with:
sudo timedatectl set-ntp on
Method 2: chrony — The Modern & Robust Choice
For systems running chrony, the chronyc utility provides deep insights into the synchronization process.
1. Get a High-Level Tracking Report
To see an overview of chrony‘s performance and the system clock’s accuracy, use the tracking subcommand.
chronyc tracking
Example Output: This output shows the reference server, the clock’s stratum (distance from a primary time source), and the system’s time offset.
Reference ID : 91BDEE04 (ntp.ubuntu.com)
Stratum : 3
Ref time (UTC) : Fri Aug 15 21:15:30 2025
System time : 0.000000123 seconds slow of NTP time
Last offset : -0.000000234 seconds
RMS offset : 0.000008765 seconds
Frequency : 1.234 ppm slow
Residual freq : -0.000 ppm
Skew : 0.012 ppm
Root delay : 0.012345 seconds
Root dispersion : 0.009876 seconds
Update interval : 1024.1 seconds
Leap status : Normal
2. View Time Source Statistics
To see which servers chrony is using and their status, use the sources subcommand.
chronyc sources
Example Output: The server marked with ^* in the MS (Mode/State) column is the primary server your system is currently synchronized with.
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp.ubuntu.com 2 10 377 512 -10us[ -12us] +/- 31ms
^- other.ntp.server.org 3 8 377 256 +200us[+200us] +/- 45ms
^+ another.ntp.server.net 2 10 377 800 -50us[ -55us] +/- 28ms
Method 3: ntpd — The Traditional Daemon
If your system uses the classic ntpd service, you have two primary tools: ntpq and ntpstat.
1. Query Peer Status with ntpq
The ntpq -p command lists the NTP servers (peers) configured on your system and the status of your connection to them.
ntpq -p
Example Output: In the first column, an asterisk (*) indicates the primary sync source, while a plus sign (+) indicates other good, reachable candidates.
remote refid st t when poll reach delay offset jitter
==============================================================================
*ntp.ubuntu.com .GPS. 1 u 64 128 377 0.521 -0.015 0.004
+chilipepper.can .GPS. 1 u 62 128 377 0.432 0.023 0.002
-tick.example.com .STEP. 16 u - 1024 0 0.000 0.000 0.000
2. Get a Simple Verdict with ntpstat
For a quick, human-readable answer, ntpstat is the perfect tool. (You may need to install it first with sudo apt install ntpstat).
ntpstat
Example Output (Synchronized):
synchronised to NTP server (91.189.94.4) at stratum 2
time correct to within 45 ms
polling server every 1024 s
Example Output (Unsynchronized):
unsynchronised
time server polling server every 64 s
By mastering these commands, you can confidently monitor and manage time synchronization on your Ubuntu systems. Regular checks are a simple but crucial part of maintaining a healthy, stable, and secure server environment.



