Chrony是类Unix系统的备用NTP客户端和服务器

在本文中,我们将讨论如何安装和配置 年代记,是类Unix系统的备用NTP客户端和服务器。 Chrony可以更快地同步系统时钟,并具有更好的时间精度,这对于一直处于离线状态的系统尤其有用。 Chrony是免费的开放源代码,并支持GNU / Linux和BSD版本,例如FreeBSD,NetBSD,macOS和Solaris。

默认情况下,大多数Linux发行版中的存储库中都提供Chrony。 如果您使用的是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服务已启动并正在运行!

年代设定

NTP客户端需要知道需要联系哪些NTP服务器才能获取当前时间。 我们可以在指令中指定NTP服务器 服务器 或者 水池 在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发行版的默认时间服务器。

这是:

  • 范围 伊伯斯特 用于加快初始同步。
  • maxsources NTP源的最大数量适用。

确保您选择的NTP服务器同步良好,稳定并且在您附近的位置,以提高NTP源的时间准确性。

从命令行控制Chronyd

Chrony有一个名为 计时码表 控制和监视守护程序 年代 (已计时)。

检查同步 年代,我们可以使用命令 追踪 如下所示。

$ 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实用程序可以使用以下命令查找每个来源的统计信息,例如漂移率和位移估算过程 来源统计

$ 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

如果您的系统未连接到Internet,则需要通知Chrony该系统未连接到Internet。 为此,请运行:

$ 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

如您所见,我所有的NTP源当前不可用。

连接到Internet后,只需使用以下命令告诉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服务器以及如何配置客户端以使用它进行时间同步。

保持最新!

Sidebar