Chrony – 类 Unix 系统的替代 NTP 客户端和服务器

在本教程中,我们将讨论如何安装和配置 计时码表,用于类 Unix 系统的替代 NTP 客户端和服务器。 Chrony 可以更快地同步系统时钟和更好的时间精度,它对于不一直在线的系统特别有用。 Chrony 是免费的开源软件,支持 GNU/Linux 和 BSD 变体,例如 FreeBSD、NetBSD、macOS 和 Solaris。

内容

  1. 安装计时
  2. 配置计时
  3. 从命令行管理 Chronyd
  4. 帮助我们帮助您:

安装计时

Chrony 在大多数 Linux 发行版的默认存储库中都可用。 如果您使用的是 Arch Linux,请运行以下命令进行安装:

$ sudo pacman -S chrony

在 Debian、Ubuntu、Linux Mint 上:

$ sudo apt-get install chrony

在 Fedora:

$ sudo dnf install chrony

安装好后开始 chronyd 服务 守护进程(如果尚未启动):

$ 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 配置文件中的指令。 通常,默认配置文件是 /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 https://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 发行版的默认时间服务器。

这里,

  • 爆发 选项用于加速初始同步。
  • 最大来源 指 NTP 源的最大数量。

请确保您选择的 NTP 服务器同步良好、稳定且 close 到您的位置,以使用 NTP 源提高时间的准确性。

从命令行管理 Chronyd

Chrony 有一个名为的命令行实用程序 计时码表 控制和监视 计时码表 守护进程(chronyd)。

检查是否 计时码表 是同步的,我们可以使用 追踪 命令如下图。

$ 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 服务器并配置客户端以使用它来同步时间。

敬请关注!

资源:

  • 计时主页

感谢您的光临!

帮助我们帮助您:

  • 订阅我们的电子邮件通讯: 立即注册
  • 支持 OSTechNix: 通过贝宝捐款
  • 下载免费的电子书和视频: TradePub 上的 OSTechNix
  • 联系我们: 红迪网 | Facebook | 推特 | 领英 | RSS订阅

祝你有美好的一天!!

ChronyLinux网络时间协议NTP开源