chrony的優點:
在新的 Linux 發行版(centos8、Ubuntu 20.04、Fedora 30)及以后的版本中,系統默認已經安裝了 chrony,在這之前的版本是沒有安裝的,可以使用下面的命令進行安裝
yum install chrony
安裝完成后,chrony 服務默認會自動加到 systemctl 中管理,下面列出了一些常用的命令
#查詢 chronyd 服務狀態
systemctl status chronyd
#啟動 chronyd 服務
systemctl start chronyd
#關閉 chronyd 服務
systemctl stop chronyd
#重啟 chronyd 服務
systemctl restart chronyd
#設置 chronyd 服務開機自啟
systemctl enable chronyd
systemctl daemon-reload
注意:ntpd 和 timesyncd 都是時間同步工具,但是它們和 chrony 沖突,只能啟動其中一個服務
chrony 是由 守護進程 chronyd 以及 命令行工具 chronyc 組成的,具體如下圖
chronyd 在后臺靜默運行并通過 123 端口與時間服務器定時同步時間,默認的配置文件是 /etc/chrony.conf
chronyc 通過 323 端口與 chrond 交互,可監控 chronyd 的性能并在運行時更改各種操作參數
chronyc 通過下面的方式訪問 chronyd
配置chrony時間同步服務器10.0.0.15 客戶端10.0.0.13 10.0.0.14
安裝客戶端服務器
yum install chrony
客戶端配置
# 同步時間的服務器 IP 或 域名
server 10.0.0.15 iburst
# 系統時鐘的預估漂移保存到指定的文件中,是為了在下次啟動時能穩定的同步
driftfile /var/lib/chrony/drift
# 如果系統時鐘由于某種原因與啟動后的服務器時間相差甚遠,允許 chronyd
# 通過步進而不是回轉來快速糾正它
makestep 1 3
# 為了使客戶端實時時鐘接近服務器的時鐘,以便下次時鐘啟動時更接近真實的時間
# 增加了一種 rtcsync 模式,該模式下,系統時間會定期的拷貝到實時時鐘里
rtcsync
# 日志
logdir /var/log/chrony
服務器配置
安裝 chrony 之后,默認的配置是客戶端的啟動配置的,要想作為一個時間服務器來運行的話, 需要在配置中增加 allow 配置項,它表示允許客戶端通過該地址和服務器同步時間
另外,時間服務器的時間也需要從網絡上其他的時間服務器進行同步,這里直接用默認的即可,具體的配置如下
# 同步時間的服務器 IP 或 域名
pool 0.centos.pool.ntp.org iburst
pool 1.centos.pool.ntp.org iburst
pool 2.centos.pool.ntp.org iburst
pool 3.centos.pool.ntp.org iburst
# 為了在下次啟動時穩定的同步,系統時鐘的預估漂移需要保存到指定的文件中
driftfile /var/lib/chrony/drift
# 如果系統時鐘由于某種原因與啟動后的服務器時間相差甚遠,允許 chronyd
# 通過步進而不是回轉來快速糾正它,這個過程將花費很長時間
makestep 1 3
# 為了使客戶端實時時鐘接近服務器的時鐘,以便下次時鐘啟動時更接近真實的時間
# 增加了一種 rtcsync 模式,該模式下,系統時間會定期的拷貝到實時時鐘里
rtcsync
# 允許客戶端通過該地址和服務器同步時間,其實這里配置的就是時間服務器的地址
allow 10.0.0.0/24
處理防火墻
時間服務器如果有開啟防火墻的話,需要開啟 UDP 協議 的 123 端口,以允許客戶端向服務器發送獲取時間的請求
firewall-cmd –permanent –add-port=123/udp
firewall-cmd –reload
重啟chrony
systemctl restart chronyd
查詢信息
在服務器端輸入 chronyc clients 命令查看同步的客戶端信息
在客戶端輸入 chronyc sources 命令查查看時間服務器的信息