為什麼要用chrony代替ntp?
CentOS8以前,推薦使用的時間同步軟件都是ntpd,但是現在,官方更多的會推薦使用chrony。這裡要分清一個概念ntpd軟件和NTP協議不是一個東西,NTP協議是網絡時間同步協議。而chrony和ntpd都是實現NTP協議的軟件。我們所謂的的"chrony代替ntp",只是chrony代替了ntpd這個軟件。
再強調一遍:chrony是實現NTP協議的其中一個軟件。
之所以chrony會代替ntp,Tristone認為主要有如下幾個原因:
1、chrony是新的設計,ntpd是老的設計,chrony的設計思想更先進;
2、chrony的配置參數比ntpd稍微簡單一些;
3、chrony的運行速度比ntpd要快的多。
Chrony相關知識
Chrony有兩個核心組件,chronyd和chronyc
chronyd:是守護進程,它負責:
1、將server上時間獲取到本機;
2、調整本機內核中運行的系統時間(完成時間同步);
3、對外提供時間同步服務(作為時間同步服務器server)。
在細節上,如果本機時間與服務器時間差距過大,chronyd還會確定每次增減時間的比率,並對此進行調整補償。
chronyc:是用戶界面,它負責:
1、監控chrony的性能;
2、對chrony進行多樣化配置;
測試環境
兩臺CentOS Linux 8服務器,IP配置如下:
192.168.1.240:服務端(Server),負責給客戶端提供時間同步服務
192.168.1.241:客戶端(client),從240上獲取時間,客戶端可以增加到N個都沒有問題
安裝Chrony
chrony的安裝特別簡單,以下一個命令搞定
yum -y install chrony
配置Chrony
運行下列命令,修改配置文件
vi /etc/chrony.conf
相關的參數設置如下:
#從時間服務器192.168.1.231上獲取時間,如果有別的時間服務器,再添加一行就行,總數沒上限。
server 192.168.1.240 iburst
#根據實際時間計算出計算機增減時間的比率,將它記錄到一個文件中是最合理的,它會在重啟後為系統時鐘作出補償
#甚至可能的話,會從時鐘服務器獲得較好的估值
driftfile /var/lib/chrony/drift
#chronyd根據需求減慢或加速時間調整,Tristone發現網上有好多互相抄的內容,讓人不知所云
#這裡表示時間的誤差如果小於5秒,則通過減慢或加快時鐘速度來逐漸調整時鐘。
#如果時間的誤差大於5秒,前3次更新時間時允許步進時間(一步到位調整時間)。
#如果改為:makestep 5 -1,則一直是按照一步到位的方式調整時間(慎用)
makestep 5 3
#rtcsync指令將啟用一個內核模式,在該模式中,系統時間每11分鐘會拷貝到實時時鐘(RTC);
rtcsync
#允許哪個IP訪問本服務器的時間服務
allow 192.168.1.0/24
#禁止哪個IP訪問本服務器的時間服務
deny 192.168/16
#Get TAI-UTC offset and leap seconds from the system tz database.
#從system tz數據庫中獲取TAI-UTC偏移量和閏秒。
leapsectz right/UTC
#指定日誌文件的目錄。
logdir /var/log/chrony
#指定包含NTP驗證密鑰的文件。
#keyfile /etc/chrony.keys
如果你擔心配置有問題,可以將你的"/etc/chrony.conf "內容清空,並將上述內容複製到裡面。
每次修改完"/etc/chrony.conf "都需要重啟一下chronyd服務
基本操作:
systemctl stop chronyd #停止chronyd服務
systemctl start chronyd #開始chronyd服務
systemctl restart chronyd #重啟chronyd服務
systemctl status chronyd #查看chronyd服務狀態
systemctl enable chronyd #開機啟動chronyd服務
systemctl disable chronyd #禁止開機啟動chronyd服務
chronyc sources -v #查看時間同步源,查看時間同步進度
#結果解釋: *說明時間同步完成,如果為?說明不成功,檢查防火牆再看看chronyd有沒有重啟。
chronyc sourcestats -v #查看時間同步源狀態:
timedatectl set-local-rtc 1 #硬件時間默認為UTC:
timedatectl set-ntp yes #啟用NTP時間同步:
chronyc tracking #校準時間服務器:
防火牆允許對外提供服務
firewall-cmd --add-service=ntp --permanent #永久允許對外提供NTP時間服務
firewall-cmd --reload
兩臺服務器都按照這個配置操作,就完成了服務器的時間同步工作。同理,多臺服務器依然可以採用這個配置進行時間同步,也就是一臺Chrony可以給N臺服務器提供時間校對服務。
閱讀更多 石哥話科技 的文章