• <rt id="uxhzh"></rt>
    1. 您好,歡迎進入北京泰福特電子科技有限公司官網

      咨詢服務熱線

      400-015-1230

      Chrony:一個類 Unix 系統上 NTP 客戶端和服務器替代品

      發布時間:2022-04-11 16:48:41

       在這個教程中,我們會討論如何安裝和配置 Chrony,一個類 Unix 系統上 NTP 客戶端和服務器的替代品。Chrony 可以更快的同步系統時鐘,具有更好的時鐘準確度,并且它對于那些不是一直在線的系統很有幫助。Chrony 是自由開源的,并且支持 GNU/Linux 和 BSD 衍生版(比如 FreeBSD、NetBSD)、macOS 和 Solaris 等。

      安裝 Chrony

         Chrony 可以從大多數 Linux 發行版的默認軟件庫中獲得。如果你使用的是 Arch Linux,運行下面的命令來安裝它:

      $ sudo pacman -S chrony

      在 Debian、Ubuntu、Linux Mint 上:

      $ sudo apt-get install chrony

      在 Fedora 上:

      $ sudo dnf install chrony

      當安裝完成后,如果之前沒有啟動過的話需啟動 chronyd.service 守護進程:

      $ sudo systemctl start chronyd.service

      使用下面的命令讓它每次重啟系統后自動運行:

      $ sudo systemctl enable chronyd.service

      為了確認 chronyd.service 已經啟動,運行:

      $ sudo systemctl status chronyd.service

      如果一切正常,你將看到類似下面的輸出:

      chrony.service - chrony, an NTP client/server

      Loaded: loaded(/lib/systemd/system/chrony.service; enabled; vendor preset: ena

      Active: active (running) since Wed2018-10-17 10:34:53 UTC; 3min 15s ago

      Docs: man:chronyd(8)

      man:chronyc(1)

      man:chrony.conf(5)

      Main PID: 2482 (chronyd)

      Tasks: 1 (limit: 2320)

      CGroup: /system.slice/chrony.service

      └─2482 /usr/sbin/chronyd

      Oct 17 10:34:53 ubuntuserver systemd[1]:Starting chrony, an NTP client/server...

      Oct 17 10:34:53 ubuntuserver chronyd[2482]:chronyd version 3.2 starting (+CMDMON

      Oct 17 10:34:53 ubuntuserver chronyd[2482]:Initial frequency -268.088 ppm

      Oct 17 10:34:53 ubuntuserver systemd[1]:Started chrony, an NTP client/server.

      Oct 17 10:35:03 ubuntuserver chronyd[2482]:Selected source 85.25.84.166

      Oct 17 10:35:03 ubuntuserver chronyd[2482]:Source 85.25.84.166 replaced with 2403

      Oct 17 10:35:03 ubuntuserver chronyd[2482]:Selected source 91.189.89.199

      Oct 17 10:35:06 ubuntuserver chronyd[2482]:Selected source 106.10.186.200

      可以看到,Chrony 服務已經啟動并且正在工作!

      配置 Chrony

      NTP 客戶端需要知道它要連接到哪個 NTP 服務器來獲取當前時間。我們可以直接在該 NTP 配置文件中的 server 或者 pool 項指定 NTP 服務器。通常,默認的配置文件位于 /etc/chrony/chrony.conf 或者 /etc/chrony.conf,取決于 Linux 發行版版本。為了更可靠的同步時間,建議指定至少三個服務器。

      下面幾行是我的 Ubuntu 18.04 LTS 服務器上的一個示例。

      [...]

      # About using servers from the NTP PoolProject in general see (LP: #104525).

      # Approved by Ubuntu Technical Board on2011-02-08.

      # See http://www.pool.ntp.org/join.html formore information.

      pool ntp.ubuntu.com iburst maxsources 4

      pool 0.ubuntu.pool.ntp.org iburstmaxsources 1

      pool 1.ubuntu.pool.ntp.org iburstmaxsources 1

      pool 2.ubuntu.pool.ntp.org iburstmaxsources 2

      [...]

      從上面的輸出中你可以看到, NTP 服務器池項目已經被設置成為了默認的時間服務器。對于那些好奇的人,NTP 服務器池項目是一個時間服務器集群,用來為全世界千萬個客戶端提供 NTP 服務。它是 Ubuntu 以及其他主流 Linux 發行版的默認時間服務器。

      在這里, * iburst 選項用來加速初始的同步過程 * maxsources 代表 NTP 源的最大數量

      請確保你選擇的 NTP 服務器是同步的、穩定的、離你的位置較近的,以便使用這些 NTP 源來提升時間準確度。

      在命令行中管理 Chronyd

      chrony 有一個命令行工具叫做 chronyc 用來控制和監控chrony 守護進程(chronyd)。

      為了檢查是否 chrony 已經同步,我們可以使用下面展示的 tracking 命令。

      $ chronyc tracking

      Reference ID : 6A0ABAC8 (t1.time.sg3.yahoo.com)

      Stratum : 3

      Ref time (UTC) : Wed Oct 17 11:48:51 2018

      System time : 0.000984587 seconds slow ofNTP time

      Last offset : -0.000912981 seconds

      RMS offset : 0.007983995 seconds

      Frequency : 23.704 ppm slow

      Residual freq : +0.006 ppm

      Skew : 1.734 ppm

      Root delay : 0.089718960 seconds

      Root dispersion : 0.008760406 seconds

      Update interval : 515.1 seconds

      Leap status : Normal

      我們可以使用命令確認現在 chrony 使用的時間源:

      $ chronyc sources

      210 Number of sources = 8

      MS Name/IP address Stratum Poll ReachLastRx Last sample

      ===============================================================================

      ^- chilipepper.canonical.com 2 10 377 296+102ms[ +104ms] +/- 279ms

      ^- golem.canonical.com 2 10 377 302 +105ms[+107ms] +/- 290ms

      ^+ pugot.canonical.com 2 10 377 297 +36ms[+38ms] +/- 238ms

      ^- alphyn.canonical.com 2 10 377 279 -43ms[-42ms] +/- 238ms

      ^- dadns.cdnetworks.co.kr 2 10 377 1070+40ms[ +42ms] +/- 314ms

      ^* t1.time.sg3.yahoo.com 2 10 377 169-13ms[ -11ms] +/- 80ms

      ^+ sin1.m-d.net 2 10 275 567-9633us[-7826us] +/- 115ms

      ^- ns2.pulsation.fr 2 10 377 311 -75ms[-73ms] +/- 250ms

      chronyc 工具可以對每個源進行統計,比如使用sourcestats 命令獲得漂移速率和進行偏移估計。

      $ chronyc sourcestats

      210 Number of sources = 8

      Name/IP Address NP NR Span Frequency FreqSkew Offset Std Dev

      ==============================================================================

      chilipepper.canonical.com 32 16 89m +6.29314.345 +30ms 24ms

      golem.canonical.com 32 17 89m +0.312 18.887+20ms 33ms

      pugot.canonical.com 32 18 89m +0.281 11.237+3307us 23ms

      alphyn.canonical.com 31 20 88m -4.087 8.910-58ms 17ms

      dadns.cdnetworks.co.kr 29 16 76m -1.0949.895 -83ms 14ms

      t1.time.sg3.yahoo.com 32 16 91m +0.1531.952 +2835us 4044us

      sin1.m-d.net 29 13 83m +0.049 6.060 -8466us9940us

      ns2.pulsation.fr 32 17 88m +0.784 9.834-62ms 22ms

      如果你的系統沒有連接到互聯網,你需要告知 Chrony 系統沒有連接到互聯網。為了這樣做,運行:

      $ sudo chronyc offline

      [sudo] password for sk:

      200 OK

      為了確認你的 NTP 源的狀態,只需要運行:

      $ chronyc activity

      200 OK

      0 sources online

      8 sources offline

      0 sources doing burst (return to online)

      0 sources doing burst (return to offline)

      0 sources with unknown address

      可以看到,我的所有源此時都是離線狀態。

      一旦你連接到互聯網,只需要使用命令告知 Chrony 你的系統已經回到在線狀態:

      $ sudo chronyc online

      200 OK

      為了查看 NTP 源的狀態,運行:

      $ chronyc activity

      200 OK

      8 sources online

      0 sources offline

      0 sources doing burst (return to online)

      0 sources doing burst (return to offline)

      0 sources with unknown address

      所有選項和參數的詳細解釋,請參考其幫助手冊。

      $ man chronyc

      $ man chronyd

      這就是文章的所有內容。希望對你有所幫助。在隨后的教程中,我們會看到如何使用 Chrony 啟動一個本地的 NTP 服務器并且配置客戶端來使用這個服務器同步時間。


      • 聯系方式
      • 傳 真:86-10-82782026
      • 電 話:400-015-1230
      • 地 址:北京市海淀區北清路68號院用友軟件園北區17號樓三層
      在線咨詢

      咨詢電話:

      400-015-1230

      • 微信掃碼 關注我們

      Copyright ? 2002-2035 北京泰福特電子科技有限公司 版權所有 備案號:京ICP備12028220號-3
      京公網安備 11010802025976號

      掃一掃咨詢微信客服

      18519396506
      欧美日韩国产一区
      Powered by RRZCMS