Getting Accurate Time Sync on Debian 13: Why Chrony Beats ntpd

Published:

If the goal is precise timekeeping on Debian 13 with fewer synchronization errors, Chrony is the clear choice. It is faster to settle, more resilient when networks are messy, and generally better suited to modern systems than the traditional ntpd. On most current distributions, it has already become the default for exactly those reasons.

Chrony and ntpd: what they are

ntpd is the classic NTP daemon. It continuously adjusts the local clock against upstream time sources, but it tends to converge slowly and works best when the machine has a stable, always-on network connection.

Chrony, through chronyd and chronyc, is a newer implementation with more adaptive algorithms. It can synchronize quickly right after startup and handles jitter, packet loss, and intermittent connectivity much more gracefully.

Why Chrony is usually the better fit

The practical differences are not subtle:

  • Startup convergence: Chrony usually settles in seconds, while ntpd often takes minutes.
  • Network tolerance: Chrony deals much better with jitter, packet loss, and reconnecting after downtime. ntpd is more comfortable in stable, continuously connected environments.
  • Accuracy and stability: Chrony generally delivers tighter synchronization, commonly reaching accuracy in the tens of microseconds rather than mostly operating at millisecond-level precision.
  • Virtual machines and cloud hosts: Chrony performs especially well in virtualized environments because it models clock drift more effectively. ntpd is more prone to drift there.
  • Resource usage: Chrony is lightweight.
  • Offline behavior: Chrony can estimate and maintain time based on drift rate even when disconnected; ntpd has little to offer in that situation.

For servers, cloud instances, containers, VMs, laptops, embedded systems, and devices that are only online part of the time, Chrony is the stronger option almost across the board. Only older deployments or environments with specific compliance requirements may still need ntpd.

It is hard not to call this a complete win for Chrony.

Installing Chrony on Debian

A single command is enough:

sudo apt install chrony -y

With the package installed through apt, the service is typically enabled by default.

Useful command equivalents

Chrony

# 查看整体状态与误差估计
chronyc tracking

# 查看时间源与质量
chronyc sources -v

# 立刻与源强制对齐(偶发极端偏差时)
sudo chronyc makestep

ntpd

# 查看已知时间服务器及偏移
ntpq -p

# 强制步进(依赖配置)
sudo service ntp stop && sudo ntpd -gq && sudo service ntp start

Minimal usable Chrony configuration

A small configuration can be enough for most systems.

/etc/chrony.conf

# 上游时间源(示例)
server time.google.com iburst
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst

# 记录硬件时钟漂移
driftfile /var/lib/chrony/drift

# 允许本机查询
allow 127.0.0.1

After that, reload or ensure the service is running:

sudo systemctl enable --now chronyd
chronyc sources -v

The direction Linux distributions have already taken

This is not a niche preference. Major distributions such as RHEL/CentOS 7+ and Ubuntu 18.04+ have already moved to Chrony by default.

So on Debian 13, if the aim is higher-precision time synchronization with fewer timing errors, Chrony is the modern and more reliable answer.