當前位置:
首頁 > 知識 > Chrony:一個類 Unix 系統上 NTP 客戶端和伺服器替代品

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

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

打開今日頭條,查看更多精彩圖片

編譯自: https://www.ostechnix.com/chrony-an-alternative-ntp-client-and-server-for-unix-like-systems/

作者: Sk

譯者: zianglei

在這個教程中,我們會討論如何安裝和配置 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 Wed 2018-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 Pool Project in general see (LP: #104525).

# Approved by Ubuntu Technical Board on 2011-02-08.

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

pool ntp.ubuntu.com iburst maxsources 4

pool 0.ubuntu.pool.ntp.org iburst maxsources 1

pool 1.ubuntu.pool.ntp.org iburst maxsources 1

pool 2.ubuntu.pool.ntp.org iburst maxsources 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 of NTP 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 Reach LastRx 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 Freq Skew Offset Std Dev

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

chilipepper.canonical.com 32 16 89m +6.293 14.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.094 9.895 -83ms 14ms

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

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

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 伺服器並且配置客戶端來使用這個伺服器同步時間。

保持關注!



via: https://www.ostechnix.com/chrony-an-alternative-ntp-client-and-server-for-unix-like-systems/

作者: SK 選題: lujun9972 譯者: zianglei 校對: wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出


點擊「了解更多」可訪問文內鏈接

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux技術 的精彩文章:

如何在 Linux 中列出可用的軟體包組
如何在 Linux 中查看已掛載的文件系統類型

TAG:Linux技術 |