Which NTP client should you use in 2026? A sysadmin's guide.
| Use Case | Recommendation | Why |
|---|---|---|
| Production servers | chrony | Full NTP + NTS, fast convergence, server mode |
| Desktop Linux | chrony or timesyncd | chrony for best accuracy, timesyncd if already installed |
| Containers / minimal VMs | timesyncd | Smallest footprint, no config needed |
| Security-critical | chrony + NTS | Only mature NTS implementation |
| NTP server / pool | chrony | Can serve time, handle hardware refclocks |
| Memory-safe alternative | ntpd-rs | Rust-based, NTS support, production-ready since 2024 |
Use chrony. It's the default on RHEL, Fedora, CentOS, Arch, and recommended by most distributions. It does everything ntpd does, but better.
| Feature | chrony | ntpd (ref) | timesyncd | ntpd-rs |
|---|---|---|---|---|
| NTP client | Yes | Yes | Yes (SNTP) | Yes |
| NTP server | Yes | Yes | No | Yes |
| NTS support | Yes (v4.0+) | No | No | Yes |
| Hardware refclocks | Yes (PPS, SHM, SOCK) | Yes | No | No |
| Leap smearing | Yes | Limited | No | Yes |
| Fast initial sync | Seconds | Minutes | Seconds | Seconds |
| Intermittent network | Excellent | Poor | OK | Good |
| Memory safety | C (audited) | C (legacy) | C (systemd) | Rust |
| Monitoring CLI | chronyc |
ntpq |
timedatectl |
ntp-ctl |
| Active development | Yes | Minimal | Yes | Yes |
| Default on | RHEL, Fedora, CentOS, Arch | Legacy systems | Ubuntu, Debian | — |
Chrony is the recommended NTP client for virtually all modern Linux deployments. Written by Miroslav Lichvar (Red Hat), it was designed from the ground up to handle real-world conditions that ntpd struggles with.
The original NTP daemon, developed by David L. Mills starting in 1985. While historically important, it is now considered legacy software.
NTPsec is a security-focused fork of ntpd with NTS support, reduced codebase, and improved security practices. If you must stay with the ntpd ecosystem, NTPsec is a better choice than the reference implementation.
Built into systemd, systemd-timesyncd is a minimal SNTP client. It handles basic time synchronization with almost zero configuration.
ntpd-rs is a modern NTP implementation written in Rust by the Trifecta Tech Foundation, funded by NLnet and ISRG (the organization behind Let's Encrypt). It reached v1.0 in 2024.
Consider ntpd-rs if memory safety is a priority (security-sensitive environments) and you don't need hardware refclock support. For most other cases, chrony remains the more mature and widely-supported choice.
If chronyc sources shows a ^* next to at least one source, your migration is successful. The system is synchronized.
The Stratum column tells you how far each source is from a reference clock — see the full NTP stratum hierarchy (stratum 0-15) for the typical accuracy at each level.
Use chrony. It converges faster, handles intermittent connectivity better, supports NTS, and uses fewer resources. ntpd is legacy software.
systemd-timesyncd is a lightweight SNTP client for basic sync. chrony is a full NTP implementation that can serve time, handle hardware refclocks, support NTS, and provide sub-millisecond accuracy. Use chrony for servers, timesyncd for minimal desktops/containers.
No. The reference ntpd does not support NTS. Only chrony (v4.0+), NTPsec, and ntpd-rs support NTS. If you need authenticated time, switch to one of these.
A modern NTP implementation written in Rust by Trifecta Tech Foundation. Memory-safe, NTS-capable, and production-ready since 2024. Good for security-sensitive environments that don't need hardware refclocks.
No. Only one NTP service should manage the clock. When installing chrony, it automatically disables timesyncd. Verify with timedatectl status.
After configuring or migrating, verify your sync is working correctly:
See also: Online NTP tester · RDEM NTS infrastructure