Chrony是一個開源的自由軟件,它能幫助你保持系統(tǒng)時鐘與時鐘服務(wù)器(NTP)同步,因此讓你的時間保持精確。它由兩個程序組成,分別是chronyd和chronyc。chronyd是一個后臺運(yùn)行的守護(hù)進(jìn)程,用于調(diào)整內(nèi)核中運(yùn)行的系統(tǒng)時鐘和時鐘服務(wù)器同步。它確定計算機(jī)增減時間的比率,并對此進(jìn)行補(bǔ)償。chronyc提供了一個用戶界面,用于監(jiān)控性能并進(jìn)行多樣化的配置。它可以在chronyd實(shí)例控制的計算機(jī)上工作,也可以在一臺不同的遠(yuǎn)程計算機(jī)上工作。
在像CentOS 7之類基于RHEL的操作系統(tǒng)上,已經(jīng)默認(rèn)安裝有Chrony。
Chrony配置
當(dāng)Chrony啟動時,它會讀取/etc/chrony.conf配置文件中的設(shè)置。CentOS 7操作系統(tǒng)上最重要的設(shè)置有:
server - 該參數(shù)可以多次用于添加時鐘服務(wù)器,必須以"server "格式使用。一般而言,你想添加多少服務(wù)器,就可以添加多少服務(wù)器。
server 0.centos.pool.ntp.org
server 3.europe.pool.ntp.org
stratumweight - stratumweight指令設(shè)置當(dāng)chronyd從可用源中選擇同步源時,每個層應(yīng)該添加多少距離到同步距離。默認(rèn)情況下,CentOS中設(shè)置為0,讓chronyd在選擇源時忽略源的層級。
driftfile - chronyd程序的主要行為之一,就是根據(jù)實(shí)際時間計算出計算機(jī)增減時間的比率,將它記錄到一個文件中是最合理的,它會在重啟后為系統(tǒng)時鐘作出補(bǔ)償,甚至可能的話,會從時鐘服務(wù)器獲得較好的估值。
rtcsync - rtcsync指令將啟用一個內(nèi)核模式,在該模式中,系統(tǒng)時間每11分鐘會拷貝到實(shí)時時鐘(RTC)。
allow / deny - 這里你可以指定一臺主機(jī)、子網(wǎng),或者網(wǎng)絡(luò)以允許或拒絕NTP連接到扮演時鐘服務(wù)器的機(jī)器。
allow 192.168.4.5
deny 192.168/16
cmdallow / cmddeny - 跟上面相類似,只是你可以指定哪個IP地址或哪臺主機(jī)可以通過chronyd使用控制命令
bindcmdaddress - 該指令允許你限制chronyd監(jiān)聽哪個網(wǎng)絡(luò)接口的命令包(由chronyc執(zhí)行)。該指令通過cmddeny機(jī)制提供了一個除上述限制以外可用的額外的訪問控制等級。
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
makestep - 通常,chronyd將根據(jù)需求通過減慢或加速時鐘,使得系統(tǒng)逐步糾正所有時間偏差。在某些特定情況下,系統(tǒng)時鐘可能會漂移過快,導(dǎo)致該調(diào)整過程消耗很長的時間來糾正系統(tǒng)時鐘。該指令強(qiáng)制chronyd在調(diào)整期大于某個閥值時步進(jìn)調(diào)整系統(tǒng)時鐘,但只有在因?yàn)閏hronyd啟動時間超過指定限制(可使用負(fù)值來禁用限制),沒有更多時鐘更新時才生效。
使用chronyc
你也可以通過運(yùn)行chronyc命令來修改設(shè)置,命令如下:
accheck - 檢查NTP訪問是否對特定主機(jī)可用
activity - 該命令會顯示有多少NTP源在線/離線
add server - 手動添加一臺新的NTP服務(wù)器。
clients - 在客戶端報告已訪問到服務(wù)器
delete - 手動移除NTP服務(wù)器或?qū)Φ确?wù)器
settime - 手動設(shè)置守護(hù)進(jìn)程時間
tracking - 顯示系統(tǒng)時間信息
你可以通過使用幫助命令查看完整的命令列表: