時間同步服務與客戶端配置
1、chrony介紹
Chrony是NTP(Network Time Protocol,網路時間協議,伺服器時間同步的一種協議)的另一種實現,與ntpd不同,它可以更快且更準確地同步系統時鐘,最大程度的減少時間和頻率誤差。
在CentOS6中,預設是使用ntpd來同步時間的,但ntpd同步時間並不理想,有可能需要數小時來同步時間。而且ntp也已經很老了。所以在Centos7中換成了chrony來實現時間同步。
chrony並且相容ntpd監聽在udp123埠上,自己則監聽在udp的323埠上。
如果在chrony配置檔案中指定了ntp伺服器的地址,那麼chrony就是一臺客戶端,會去同步ntp伺服器的時間,如果在chrony配置了允許某些客戶端來向自己同步時間,則chrony也充當了一臺伺服器,所以,安裝了chrony即可充當客戶端也可以充當服務端。一般我們只需要做客戶端就好,不需要對外提供時間同步功能。
chrony是兩個用來維持計算機系統時鐘準確性的程式,這兩個程式命名為chronyd和chronyc。
chronyd是一個在系統後臺執行的守護程序。主要用於調整核心中執行的系統時間和時間伺服器同步,他根據網路上其他時間伺服器時間來測量本機時間的偏移量從而調整系統時鐘。對於孤立系統,使用者可以手動週期性的輸入正確時間(通過chronyc)。在這兩種情況下,chronyd決定計算機快慢的比例,並加以糾正。chronyd實現了NTP協議並且可以作為伺服器或客戶端。
chronyc是用來監控chronyd效能和配置其引數的使用者介面。他可以控制本機及其他計算機上執行的chronyd程序。
服務unit檔案: /usr/lib/systemd/system/chronyd.service
監聽埠: 323/udp,123/udp
配置檔案: /etc/chrony.conf
chrony 的優勢:
更快的同步,從而最大程度減少了時間和頻率誤差,對於並非全天 24 小時執行的虛擬計算機而言非常有用
能夠更好地響應時鐘頻率的快速變化,對於具備不穩定時鐘的虛擬機器或導致時鐘頻率發生變化的節能技術而言非常有用
在初始同步後,它不會停止時鐘,以防對需要系統時間保持單調的應用程式造成影響
在應對臨時非對稱延遲時(例如,在大規模下載造成連結飽和時)提供了更好的穩定性
無需對伺服器進行定期輪詢,因此具備間歇性網路連線的系統仍然可以快速同步時鐘
chrony官網:https://chrony.tuxfamily.org
chrony官方文件:https://chrony.tuxfamily.org/documentation.html
chrony 用於取代原Centos 6 的ntpd服務,它即可以充當客戶端,也可以充當服務端。
2、搭建chrony時間伺服器
搭建1臺NTP時間伺服器,為整個網路環境中的所有主機提供時間校準服務,具體要求如下:
【1】部署1臺NTP時間伺服器
【2】設定時間伺服器上層與0.centos.pool.ntp.org同步
【3】設定本地伺服器層級數量為10
【4】允許192.168.4.0/24網路的主機同步時間
【5】客戶端驗證時間是否同步
NTP(網路時間協議)採用的是分層設計,Stratum層的總數限制在 15以內(包括15)。
部署NTP服務:
# yum install chrony #伺服器和客戶端都是同一個包
配置NTP服務:
# vim /etc/chrony.conf server ntp.aliyun.com iburst #同步上游的時間伺服器,iburst表示儘快同步時間 allow 192.168.0.0/16 #充當NTP時間伺服器,會監聽在udp 123埠,表示允許:192.168.0.0/16 這個網段的伺服器來同步時間 deny 192.168.4.1 #拒絕:192.168.4.1的客戶端來同步時間 local stratum 10 #表示本地伺服器的層級,不超過15層,就表示是合理的
重啟服務:
# systemctl restart chronyd
# systemctl enable chronyd
3、配置客戶端同步服務
時間同步服務
1、NTP網路時間協議
2、配置chronyd校時服務
2、測試校時服務
NTP->NTP伺服器為客戶機提供標準時間,NTP客戶機需要與NTP伺服器保持溝通
RHEL 7 客戶端的校時服務:
軟體包:chrony
配置檔案:/etc/chrony.conf
系統服務:chronyd
客戶安裝chrony包:
# yum install chrony
修改配置檔案:
# vim /etc/chrony.conf #server 0.centos.pool.ntp.org iburst #修改成自己的ntp伺服器,iburst表示儘快同步時間,同可同時新增多個 #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst server classroom.example.com iburst
重戶客戶端服務:
# systemctl restart chronyd
# systemctl enable chronyd #開啟自啟動
驗證:
# date -s '2008-10-1 10:10:10' #改錯時間 # systemctl restart chronyd #重啟,會自動同步,但並不是立即,會有5秒的時間 # chronyc sources -v #檢視當前系統的時間同步源資訊 # chronyc sourcestats #檢視當前系統的時間同步源狀態資訊 # chronyc -a makestep #手工進行同步
也可以使用命令:timedatectl 檢視當時NTP狀況,如下圖所示:
至此,時間伺服器配置完畢!