Maintaining microsecond-accurate system clocks is essential across modern Linux servers, container clusters, distributed database nodes, and cryptographic authentication systems (such as Kerberos and TOTP). On modern Ubuntu installations, system time synchronization is orchestrated natively by the systemd-timesyncd SNTP (Simple Network Time Protocol) client daemon. While standard commands like timedatectl provide basic time and timezone summaries, diagnosing clock drift, network jitter, poll intervals, and upstream NTP server health requires the specialized diagnostic query timedatectl timesync-status.
Understanding systemd-timesyncd and NTP Telemetry
The systemd-timesyncd daemon is a lightweight SNTP client designed to synchronize the local system clock across network NTP pools:
- Server Identification: Confirms the exact IP address, hostname, and stratum level of the upstream time server currently serving clock samples.
- Poll Interval: Displays the current sampling interval, which scales dynamically (from 32 seconds under active adjustments up to 2,048 seconds when clock stability is established).
- Offset and Delay: Offset measures the time difference between the local clock and the upstream reference; Delay measures the network round-trip packet transit latency.
- Jitter: Measures the variance and statistical stability of consecutive network latency measurements.
Checking General Time Status with timedatectl
First, verify that network time synchronization is enabled on your Ubuntu machine:
timedatectl
The output reports:
Local time: Sat 2026-11-07 10:15:32 UTC
Universal time: Sat 2026-11-07 10:15:32 UTC
RTC time: Sat 2026-11-07 10:15:32
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Verify that both System clock synchronized and NTP service report yes and active.
Inspecting Granular Synchronization Metrics with timesync-status
To inspect real-time NTP telemetry and network connection statistics, run:
timedatectl timesync-status
The output presents a structured telemetry breakdown:
Server: 185.125.190.58 (ntp.ubuntu.com)
Poll interval: 17min 4s (min: 32s; max 34min 8s)
Leap: normal
Version: 4
Stratum: 2
Reference: C0A80001
Offset: -124.512us
Delay: 14.821ms
Jitter: 321.412us
Packet count: 42
Jumping: no
Key metrics explained:
- Server: The IP address and reverse DNS name of the active NTP server.
- Stratum: Stratum 2 indicates the server is directly synchronized with a Stratum 1 atomic clock or GPS source.
- Offset:
-124.512usindicates the local clock is within 124 microseconds of true reference time. - Delay:
14.821msnetwork round-trip latency to the NTP server. - Jitter:
321.412uslatency fluctuation across packets. Low jitter ensures stable phase-locked loop tracking. - Leap: Reports whether an impending leap second insertion or deletion has been advertised by upstream authorities.
Configuring Custom Corporate or Local NTP Servers
If your Ubuntu machine operates within an air-gapped environment or requires designated enterprise NTP servers, configure systemd-timesyncd directly:
- Open the configuration file in a text editor:
sudo nano /etc/systemd/timesyncd.conf - Under the
[Time]header, define your primary NTP servers and fallback servers:[Time] NTP=192.168.1.10 time.cloudflare.com FallbackNTP=ntp.ubuntu.com pool.ntp.org - Save and exit the file.
- Restart the service to apply changes:
sudo systemctl restart systemd-timesyncd
Verifying Service Logs and Clock Steps
To review historical clock corrections or inspect whether timesyncd stepped the clock during initial boot:
journalctl -u systemd-timesyncd -e --no-pager
The journal logs record synchronization events:
systemd-timesyncd[612]: Network configuration changed, trying to establish connection.
systemd-timesyncd[612]: Contacted time server 162.159.200.123:123 (time.cloudflare.com).
systemd-timesyncd[612]: Initial clock synchronization to Sat 2026-11-07 10:15:32.412850 UTC.
This confirms that clock discipline is active, reliable, and continuously verified against reference time standards.