🖥️ Chrony 時間同步

高精度 NTP 時間同步(ntpd 現代替代)

Chrony 是現代 Linux 發行版的 NTP 實作,比傳統 ntpd 收斂更快、精度更高,特別適合虛擬機與網路不穩定的環境,Ubuntu 20.04+ 預設已採用。

安裝

$ sudo apt update && sudo apt install -y chrony
sudo systemctl enable --now chrony

Ubuntu 22.04+ 已預裝 chrony,通常不需要另外安裝。

設定(/etc/chrony/chrony.conf)

# NTP 上游伺服器(台灣 NTP 伺服器)
server time.stdtime.gov.tw iburst
server tock.stdtime.gov.tw iburst
server tick.stdtime.gov.tw iburst

# 備用:NTP Pool 亞洲區
pool asia.pool.ntp.org iburst

# 允許時間差超過 1 秒時立即調整(而非慢慢漂移)
makestep 1.0 3

# 時鐘漂移記錄檔
driftfile /var/lib/chrony/drift

# 記錄詳細統計
logdir /var/log/chrony
$ sudo systemctl restart chrony

驗證同步狀態

$ chronyc tracking
Reference ID    : 123.45.67.89 (time.stdtime.gov.tw)
Stratum         : 2
Ref time (UTC)  : Tue May 20 02:30:00 2026
System time     : 0.000012345 seconds slow of NTP time
RMS offset      : 0.000154321 seconds
Frequency       : -2.345 ppm slow
Residual freq   : -0.001 ppm
Skew            : 0.123 ppm
Root delay      : 0.005678901 seconds
$ chronyc sources -v    # 查看上游伺服器狀態(* = 目前使用的)
MS Name/IP address  Stratum Poll Reach LastRx Last sample
========================================================
^* time.stdtime.gov.tw    1  10   377   523  -0.5ms[+0.2ms] +/-   5ms
^+ tock.stdtime.gov.tw    1  10   377   523  +0.3ms[+0.1ms] +/-   6ms

作為內網 NTP 伺服器

若要讓 chrony 為內網其他機器提供時間同步服務:

# 在 chrony.conf 加入
allow 192.168.1.0/24    # 允許此子網段的客戶端連線
$ sudo systemctl restart chrony
sudo ufw allow 123/udp    # 開放 NTP port

客戶端設定(/etc/chrony/chrony.conf):

server 192.168.1.10 iburst   # 指向內網 NTP 伺服器

常用指令

操作指令
查看同步狀態chronyc tracking
查看上游伺服器chronyc sources -v
查看統計資訊chronyc sourcestats
強制立即同步sudo chronyc makestep
查看日誌sudo journalctl -u chrony
確認時間設定timedatectl status