网站搜索

如何在 Linux 中安装 Chrony NTP 同步时间


网络时间协议 (NTP) 是一种用于通过网络自动同步计算机系统时钟的协议。计算机可以让系统时钟使用协调世界时 (UTC) 而不是本地时间。

由于多种原因,在 Linux 系统(尤其是服务器)上保持准确的时间是一项重要任务。例如,在网络环境中,需要准确的计时来获取数据包和系统日志中的准确时间戳,以进行根本原因分析、确定问题何时发生并查找相关性。

Chrony 现在是基于 RHEL 的最新发行版(例如 CentOS StreamFedora)上的默认 NTP 实现包>、Rocky LinuxAlmaLinux 以及基于 Debian 的发行版,例如 UbuntuLinux 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.confUbuntu/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。