如何在 Linux 中安装 Chrony NTP 同步时间
网络时间协议 (NTP) 是一种用于通过网络自动同步计算机系统时钟的协议。计算机可以让系统时钟使用协调世界时 (UTC) 而不是本地时间。
由于多种原因,在 Linux 系统(尤其是服务器)上保持准确的时间是一项重要任务。例如,在网络环境中,需要准确的计时来获取数据包和系统日志中的准确时间戳,以进行根本原因分析、确定问题何时发生并查找相关性。
Chrony 现在是基于 RHEL 的最新发行版(例如 CentOS Stream、Fedora)上的默认 NTP 实现包>、Rocky Linux 和 AlmaLinux 以及基于 Debian 的发行版,例如 Ubuntu 和 Linux Mint 等,并默认预安装。
Chrony 软件包由 chronyd(一个在用户空间中运行的守护进程)和 chronyc 一个用于监视和控制 chronyd 的命令行程序组成。
Chrony 是一种多功能的 NTP 实现,在各种条件下都表现良好(查看 chrony 套件与其他 NTP 实现的比较)。它可用于将系统时钟与 NTP 服务器(充当客户端)、参考时钟(例如 GPS 接收器)或手动时间输入同步。它还可以用作 NTPv4 (RFC 5905) 服务器或对等服务器,为网络中的其他计算机提供时间服务。
在本文中,您将了解如何使用 chrony 在 Linux 中将服务器时间与 NTP 同步。
在 Linux 服务器中安装 Chrony
在大多数 Linux 系统中,默认情况下不安装 chrony 命令。要安装它,请执行以下命令。
sudo yum install chrony [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo apt install chrony [On Debian, Ubuntu and Mint]
chrony 守护进程的默认位置是 /usr/sbin/chronyd,命令行程序将安装到 /usr/bin/chronyc。 >
安装完成后,启动 chrony 服务并使其在系统启动时自动启动,然后检查它是否已启动并运行。
systemctl enable --now chronyd
systemctl status chronyd
要交叉检查 chrony 现在是否正常启动并运行良好,并查看连接到它的服务器和对等点的数量,请运行以下 chronyc 命令。
chronyc activity
检查 Linux 中的 Chrony 同步
要显示有关 chronyd 正在访问的当前时间源的信息(可用服务器列表、状态以及与本地时钟和源的偏移量),请使用 -v
运行以下命令 标志显示每列的描述。
chronyc sources
OR
chronyc sources -v
关于前面的命令,要显示 chronyd 当前正在检查的每个源的其他有用信息(例如漂移率和偏移估计过程),请使用 sourcestats 命令。
chronyc sourcestats
OR
chronyc sourcestats -v
要检查chrony跟踪,请运行以下命令。
chronyc tracking
在此命令的输出中,引用 ID 指定所有可用服务器中计算机当前同步到的服务器的名称(或 IP 地址)(如果可用)。
在 Linux 中配置 Chrony 时间源
主要的 chrony 配置文件位于 /etc/chrony.conf (CentOS/RHEL/Fedora) 或 /etc/chrony /chrony.conf(Ubuntu/Debian)。
在云中安装 Linux 操作系统时,您的系统应该在安装过程中添加一些默认服务器或服务器池。要添加或更改默认服务器,请打开配置文件进行编辑:
vi /etc/chrony.conf
OR
vi /etc/chrony/chrony.conf
您可以使用 server 指令添加多个服务器,如下所示。
server 0.europe.pool.ntp.org iburst
server 1.europe.pool.ntp.org iburst
server 2.europe.pool.ntp.org ibusrt
server 3.europe.pool.ntp.org ibusrt
或者在大多数情况下,最好使用 ntppool.org 来查找 NTP 服务器。这允许系统尝试为您找到最近的可用服务器。要添加池,请使用 pool 指令:
pool 0.pool.ntp.org burst
您可以在该文件中配置许多其他选项。进行更改后,重新启动 chrony 服务。
sudo systemctl restart chrony
OR
systemctl restart chronyd
要显示 chronyd 正在查询的当前时间源的信息,请再次运行以下命令。
chronyc sources
要检查 chrony 跟踪状态,请运行以下命令。
chronyc tracking
要显示系统上的当前时间,检查系统时钟是否同步以及 NTP 是否确实处于活动状态,请运行 timedatectl 命令:
timedatectl
本指南到此结束。如果您有任何疑问,请通过下面的评论部分与我们联系。有关更多信息,请查看:RHEL 文档中的使用 chrony 套件配置 NTP 或 Ubuntu 官方博客中的使用 chrony 套件配置 NTP。