EN FR

Chrony vs ntpd vs systemd-timesyncd

Which NTP client should you use in 2026? A sysadmin's guide.

TL;DR — Quick Recommendation

Use CaseRecommendationWhy
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

Short answer

Use chrony. It's the default on RHEL, Fedora, CentOS, Arch, and recommended by most distributions. It does everything ntpd does, but better.

Feature Comparison Table

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: The Modern Standard

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.

Key Advantages

Minimal Configuration

# /etc/chrony/chrony.conf server ntp-pool.rdem-systems.com iburst nts server ptbtime1.ptb.de iburst nts server time.cloudflare.com iburst nts pool pool.ntp.org iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync

Essential Commands

root@server:~# chronyc tracking # Overall sync status root@server:~# chronyc sources -v # List time sources root@server:~# chronyc authdata # NTS authentication status root@server:~# chronyc makestep # Force immediate correction

ntpd: The Legacy Reference

The original NTP daemon, developed by David L. Mills starting in 1985. While historically important, it is now considered legacy software.

Why you should migrate away from ntpd

  • No NTS support — cannot use authenticated time
  • Slow initial sync (requires multiple poll cycles to converge)
  • Poor handling of intermittent connectivity
  • Large, complex C codebase with limited ongoing maintenance
  • Cannot tolerate large clock jumps (problematic in VMs)

Still Using ntpd? Check Your Sync

root@server:~# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *pool-ntp.rdem-s .GPS. 1 u 34 64 377 4.231 0.145 0.089

NTPsec: a hardened fork

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.

systemd-timesyncd: The Lightweight Option

Built into systemd, systemd-timesyncd is a minimal SNTP client. It handles basic time synchronization with almost zero configuration.

When It's Enough

When It's Not Enough

Configuration

# /etc/systemd/timesyncd.conf [Time] NTP=ntp-pool.rdem-systems.com pool.ntp.org FallbackNTP=time.cloudflare.com
root@server:~# timedatectl status Local time: Mon 2026-03-10 14:30:15 CET Universal time: Mon 2026-03-10 13:30:15 UTC RTC time: Mon 2026-03-10 13:30:15 Time zone: Europe/Paris (CET, +0100) System clock synchronized: yes NTP service: active

ntpd-rs: The Rust Newcomer

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.

Key Features

Installation

# From source (requires Rust toolchain) $ cargo install ntpd-rs # Or via package manager (where available) root@server:~# apt install ntpd-rs # future packaging

When to choose ntpd-rs

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.

Migrating from ntpd to chrony

Step 1: Note your current servers

root@server:~# grep "^server\|^pool" /etc/ntp.conf server 0.pool.ntp.org iburst server 1.pool.ntp.org iburst

Step 2: Install chrony and remove ntpd

# Debian/Ubuntu root@server:~# apt install chrony && apt remove ntp # RHEL/CentOS root@server:~# dnf install chrony && dnf remove ntp

Step 3: Configure chrony

# /etc/chrony/chrony.conf # Use your existing servers + add NTS server ntp-pool.rdem-systems.com iburst nts pool pool.ntp.org iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync # If acting as NTP server for your LAN: allow 192.168.0.0/16 allow 10.0.0.0/8

Step 4: Start and verify

root@server:~# systemctl enable --now chronyd root@server:~# chronyc sources -v .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current best, '+' = combined, '-' = not combined, | / 'x' = may be in error, '~' = too variable, '?' = unusable. || .- xxxx [ yyyy ] +/- zzzz || Ref ID Stratum Poll Reach LastRx Last sample =============================================================================== ^* ntp-pool.rdem> 2 6 377 23 -145us[ -201us] +/- 12ms

Migration complete

If chronyc sources shows a ^* next to at least one source, your migration is successful. The system is synchronized.

Frequently Asked Questions

Should I use chrony or ntpd?

Use chrony. It converges faster, handles intermittent connectivity better, supports NTS, and uses fewer resources. ntpd is legacy software.

What is the difference between chrony and systemd-timesyncd?

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.

Does ntpd support NTS?

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.

What is ntpd-rs?

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.

Can I run chrony and timesyncd at the same time?

No. Only one NTP service should manage the clock. When installing chrony, it automatically disables timesyncd. Verify with timedatectl status.

Verify Your NTP Client

After configuring or migrating, verify your sync is working correctly:

Run NTP Diagnostics Troubleshoot Daemon Issues

See also: Online NTP tester · RDEM NTS infrastructure