一、chrony簡介
chrony是一款開源的NTP時間同步軟件,主要用于Unix-like計算機系統(如Linux、BSD和macOS)來提供高精度的時間同步。Chrony的設計注重性能和可靠性,具有低延遲、低CPU占用率、低內存消耗等優點。chrony由兩個程序組成,chronyd(服務器端)和chronyc(客戶端)
chronyd:后臺運行的守護進程,用于調整內核中運行的系統時鐘和時鐘服務器同步,它確定了計算機增減時間的比率,并對此進行平滑調整
chronyc:提供用戶界面,用于監控性能并進行多樣化的配置。可在chronyd實例控制的計算機上工作,也可在一臺不同的遠程計算機工作
二、實驗環境
2.1 實驗拓撲
如圖,兩臺服務器Server1、Server2連接到同一網絡
2.2 本地環境規劃
主機名 | IP地址 | 操作系統版本 | 內核版本 |
Server1 | 172.16.0.134/24 | Rocky Linux 8.9 (Green Obsidian) | Linux 4.18.0-513.5.1.el8_9.x86_64 |
Server2 | 172.16.0.150/24 | Rocky Linux 8.9 (Green Obsidian) | Linux 4.18.0-513.5.1.el8_9.x86_64 |
Net1網絡中配置了NAT(網絡地址轉換),兩臺服務器均可以訪問公網
三、配置時間同步
3.1 安裝chrony
[root@Server1 ~]# rpm -qa | grep chrony chrony-4.2-1.el8.rocky.1.0.x86_64
Rokcy Linux 8.9版本默認安裝了chrony,驗證安裝狀態:
3.2 配置Server1從公網時間源服務器同步時間
編輯“/etc/chrony.conf”文件:
[root@Server1 ~]# vim /etc/chrony.conf # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). # pool 2.rocky.pool.ntp.org iburst # 注釋該行,添加如下兩行,理論上想添加多少時間服務器都可以 Server ntp.aliyun.com iburst # 阿里時間源服務器 Server time1.cloud.tencent.com iburst # 騰訊時間源服務器
重啟chronyd服務,并設置開機自啟:
[root@Server1 ~]# systemctl restart chronyd [root@Server1 ~]# systemctl enable chronyd [root@Server1 ~]# systemctl is-active chronyd # 查看chronyd服務是否正常運行 active [root@Server1 ~]#
查看時間同步狀態:
[root@Server1 ~]# chronyc sources MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 203.107.6.88 2 6 37 63 +49us[+2956us] +/- 23ms ^- 106.55.184.199 2 6 127 60 +1891us[+1891us] +/- 47ms [root@Server1 ~]# [root@Server1 ~]# chronyc sources -v .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current best, '+' = combined, '-' = not combined, | / 'x' = may be in error, '~' = too variable, '?' = unusable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || | | zzzz = estimated error. || | | MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 203.107.6.88 2 6 77 3 -3557us[-3824us] +/- 26ms ^+ 106.55.184.199 2 6 257 1 +2021us[+2021us] +/- 46ms [root@Server1 ~]#
chronyc sources輸出結果解析:
<1> M
這表示信號源的模式。^表示服務器,=表示對等方,#表示本地連接的參考時鐘。
<2> S
此列指示源的狀態。
* 表示chronyd當前同步到的源。
+ 表示可接受的信號源,與選定的信號源組合在一起。
- 表示被合并算法排除的可接受源。
?指示已失去連接性或其數據包未通過所有測試的源。它也顯示在啟動時,直到從中至少收集了3個樣本為止。
x 表示chronyd認為是虛假行情的時鐘(即,其時間與大多數其他來源不一致)
? 表示時間似乎具有太多可變性的來源。
<3> Name/IP address
這顯示了源的名稱或IP地址,或參考時鐘的參考ID。
<4> Stratum
這顯示了來源的層,如其最近收到的樣本中所報告的那樣。層1表示一臺具有本地連接的參考時鐘的計算機。與第1層計算機同步的計算機位于第2層。與第2層計算機同步的計算機位于第3層,依此類推。
<5> Poll
這顯示輪詢源的速率,以秒為單位的時間間隔的以2為底的對數。因此,值為6表示每64秒進行一次測量。chronyd會根據當前情況自動更改輪詢速率。
<6> Reach
這顯示了源的可達性寄存器以八進制數字打印。寄存器有8位,并在每個從源接收或丟失的數據包上更新。值377表示從最后八次傳輸中收到了對所有用戶的有效答復。
<7> LastRx
此列顯示多長時間前從來源接收到了最后一個好的樣本(在下一列中顯示)。未通過某些測試的測量將被忽略。通常以秒為單位。字母m,h,d或y表示分鐘,小時,天或年。
<8> Last sample
此列顯示上次測量時本地時鐘與源之間的偏移。方括號中的數字表示實際測得的偏移量。可以用ns(表示納秒),us (表示微秒),ms(表示毫秒)或s(表示秒)作為后綴。方括號左側的數字表示原始測量值,已調整為允許此后施加于本地時鐘的任何擺度。
<9> +/-指示器后面的數字表示測量中的誤差范圍。正偏移表示本地時鐘位于源時鐘之前。
例如:現有時鐘服務器time_server:它的層級是2,一臺主機node1從time_server同步時間,那么node1主機的層級就是3,以此類推另一臺在node1同步時間,那它的層級就是4。
3.3 配置Server2從Server1時間源同步時間
Server1上再次編輯“/etc/chrony.conf”文件:
[root@Server1 ~]# vim /etc/chrony.conf # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). # pool 2.rocky.pool.ntp.org iburst Server ntp.aliyun.com iburst Server time1.cloud.tencent.com iburst # Record the rate at which the system clock gains/losses time. driftfile /var/lib/chrony/drift # Allow the system clock to be stepped in the first three updates # if its offset is larger than 1 second. makestep 1.0 3 # Enable kernel synchronization of the real-time clock (RTC). rtcsync # Enable hardware timestamping on all interfaces that support it. #hwtimestamp * # Increase the minimum number of selectable sources required to adjust # the system clock. #minsources 2 # Allow NTP client access from local network. #allow 192.168.0.0/16 allow 172.16.0.0/24 # 配置訪問規則,僅允許該網絡的客戶端訪問 # Serve time even if not synchronized to a time source. #local stratum 10 local stratum 10 # 即使未同步到時間源,也要提供時間同步服務,當前系統層級為10 # Specify file containing keys for NTP authentication. keyfile /etc/chrony.keys # Get TAI-UTC offset and leap seconds from the system tz database. leapsectz right/UTC # Specify directory for log files. logdir /var/log/chrony # Select which information is logged. #log measurements statistics tracking
重啟chronyd服務:
[root@Server1 ~]# systemctl restart chronyd
防火墻放行ntp服務:
[root@Server1 ~]# firewall-cmd --add-service=ntp --permanent success [root@Server1 ~]# firewall-cmd --reload success
Server2上編輯“/etc/chrony.conf”文件:
[root@Server2 ~]# vim /etc/chrony.conf # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). # pool 2.rocky.pool.ntp.org iburst # 注釋該行,添加下面一行 Server 172.16.0.134 iburst
重啟chronyd服務,并設置開機自啟:
[root@Server2 ~]# systemctl restart chronyd [root@Server2 ~]# systemctl enable chronyd
查看時間同步狀態:
審核編輯:湯梓紅
-
Linux
+關注
關注
87文章
11292瀏覽量
209331 -
計算機
+關注
關注
19文章
7488瀏覽量
87852 -
操作系統
+關注
關注
37文章
6801瀏覽量
123285 -
開源
+關注
關注
3文章
3309瀏覽量
42471
原文標題:Linux配置時間同步 - chrony
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論