如何在 Rocky Linux 上将 Chrony 设置为 NTP 服务器和客户端如何在 Rocky Linux 上将 Chrony 设置为 NTP 服务器和客户端如何在 Rocky Linux 上将 Chrony 设置为 NTP 服务器和客户端如何在 Rocky Linux 上将 Chrony 设置为 NTP 服务器和客户端
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Rocky Linux 上将 Chrony 设置为 NTP 服务器和客户端

在此页

  1. 先决条件
  2. 安装 Chrony 包
  3. 将 Chrony 设置为 NTP 服务器
  4. 将 Chrony 设置为 NTP 客户端
  5. 结论

NTP 或网络时间协议是一种用于计算机网络上时间和时钟同步的网络协议。

Chrony 是 NTP 或网络时间协议的实现,是 up 等其他应用程序的替代品。 Chrony 可以在类 Unix 操作系统上运行,在 GNU GPL v2 下发布。 Chrony 被用作某些 Linux 发行版的默认 NTP 服务器软件,也可用于多个 Linux 发行版。

在本指南中,您将学习如何在 Rocky Linux 服务器上安装和使用 Chrony。您将学习如何以两种不同的方式使用 Chrony:

  • 将 Chrony 用作 NTP 服务器 - 如果您想为本地环境构建 NTP 服务器,通常会使用这种方法。因此,客户端将连接到运行 Chrony 作为 NTP 服务器的本地计算机,而不是连接到互联网上的公共 NTP 服务器。
  • 使用 Chrony 作为 NTP 客户端 - 这是当您需要将计算机或客户端上的时间同步到 NTP 服务器时。

先决条件

本指南假设您有两个不同的 Rocky Linux 服务器,它们将用作 NTP 服务器和 NTP 客户端。您可以使用 Rocky Linux v8 或最新版本 9。此外,您还需要一个在两台机器上都具有 sudo root 权限的非 root 用户。

以下是我们将使用的详细服务器:

Hostname        IP Address       Used as
-------------------------------------------
rocky8          192.168.5.100    NTP Server
client1         192.168.5.120    NTP Client

现在让我们开始 Chrony 安装和配置。

安装 Chrony 包

Chrony 是类 Unix 操作系统的 NTP(网络时间协议)的实现之一。

默认情况下,Chrony 软件包在 baseos Rocky Linux 存储库中可用。

您可以使用下面的 dnf 命令检查 Chriony 包。您应该会看到有关 Chrony 包的详细信息。

sudo dnf info chrony

在下面的屏幕截图中,您可以看到 Chrony v4.1 的当前版本在 baseos Rocky Linux 存储库中可用。

现在,要安装 Chriony,请运行下面的 dnf 命令。当提示确认安装时,输入 y 然后按 ENTER 继续。

sudo dnf install chrony

安装 Chrony 后,使用下面的 systemctl 命令启动并启用 Chronyd 服务。

sudo systemctl enable chronyd
sudo systemctl start chronyd

之后,使用以下命令验证 Chronyd 服务。

sudo systemctl status chronyd

您应该会看到 Chrionyd 服务已启用并将在系统启动时自动运行。而现在,Chronyd 服务的状态是运行。

将 Chrony 设置为 NTP 服务器

在这一步中,您将学习如何在 ROcky Linux 服务器上将 Chrony 设置为 NTP 服务器。在此示例中,我们将使用主机名为 rocky8 且 IP 地址为 192.168.5.100 的 Rocky Linux 服务器。

要设置 Chrony,您必须编辑默认的 Chrony 配置 /etc/chrony.conf 文件。

使用以下 nano 编辑器命令打开文件 /opt/.chrony.conf。

sudo nano /etc/chrony.conf

在 server 指令中,您可以指定要使用的 NTP 服务器的来源。您可以在 https://www.ntppool.org/en/ 找到离您最近的 NTP 服务器池。

在此示例中,我们将使用以下 NTP 服务器池。此外,我们将使用附加选项 iburst,它允许 Chronyd 服务在启动后不久进行时钟的第一次更新。

# list servers
server 0.se.pool.ntp.org iburst
server 1.se.pool.ntp.org iburst
server 2.se.pool.ntp.org iburst
server 3.se.pool.ntp.org iburst

取消注释 allow 指令并添加允许访问 NTP 服务器的 IP 地址的子网。在此示例中,将允许网络 192.168.5.0/24 中的所有客户端访问 NTP 服务器。

# allowed clients
allow 192.168.5.0/24

完成后保存文件并退出编辑器。

您可能还想更改的其他选项/指令:

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Specify the file containing keys for NTP authentication.
keyfile /etc/chrony.keys

# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC

接下来,运行以下命令重新启动 Chronyd 服务并应用新的更改。 Chronyd 服务现在作为 NTP 服务器运行。

sudo systemctl restart chronyd

现在,让我们在下面运行以下 chronyc 命令来验证当前使用的 NTP 服务器池的来源。您应该会看到您的服务器使用的当前 NTP 服务器源的列表。

chronyc sources

您还可以通过 -v 选项获取详细信息作为详细信息。

chronyc sources -v

以下是服务器上使用的 NTP 服务器源的详细状态。

最后,您需要将 NTP 服务端口添加到 firewalld。这将允许客户端机器连接到您的 NTP 服务器。

运行下面的 firewall-cmd 命令将 NTP 服务添加到 firewalld。然后,重新加载 firewalld。这将允许任何机器连接到 NTP 服务器。

sudo firewall-cmd --add-service=ntp --permanent
sudo firewall-cmd --reload

您还可以指定允许通过 Firewalld Rich Rules 访问 NTP 服务器的网络子网。添加 firewalld rich 规则,允许子网 192.168.5.0/24 通过下面的 firewall-cmd 命令访问 NTP 服务器。然后,重新加载 firewalld 以应用新规则。

sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.5.0/24' service='ntp' accept"
sudo firewall-cmd --reload

现在您可以使用以下 firewall-cmd 命令检查 firewalld 规则。您应该在 firewalld 上看到启用的服务和打开的端口。

sudo firewall-cmd --list-all

此时,您已经在 Rocky Linux 服务器上安装并配置了 Chrony 作为 NTP 服务器。您接下来可以将 Chrony 设置为 NTP 客户端。

将 Chrony 设置为 NTP 客户端

现在您将学习如何在 Rocky Linux 系统上将 Chrony 设置为 NTP 客户端。在此示例中,您将使用主机名 client1 在 Rocky Linux 机器上设置 Chrony NTP 客户端。

在开始之前,请确保在客户端计算机上安装了 Chrony 软件包。您可以通过 dnf 命令安装它。

sudo dnf install chrony -y

安装 Chriony 后,使用以下 nano 编辑器命令打开配置文件 /etc/chrony.conf。

sudo nano /etc/chrony.conf

在服务器指令中,将 NTP 服务器源更改为您的 NTP 服务器。在此示例中,NTP 服务器正在运行 IP 地址为 192.168.5.100 的服务器。

此外,您还可以在服务器指令中看到其他选项\

  • iburst 选项允许 Chronyd 服务在启动后不久进行时钟的第一次更新。
  • prefer 选项将在没有 prefer 选项的其他服务器中优先考虑 NTP 服务器源。

server 192.168.5.100 iburst prefer

完成后保存文件并退出编辑器。

现在,运行以下命令重新启动 Chrony 服务并应用新配置。

sudo systemctl restart chronyd

最后,运行以下 chronyc 命令来验证 client1 机器上 NTP 的当前状态。

chronyc tracking

您应该看到 client1 机器已连接并将时间同步到 NTP 服务器 ntp.hwdomain.io,即服务器 IP 地址 192.168.5.100。

您还可以通过下面的 chronyc 命令验证详细的 NTP 数据。

chronyc ntpdata

您现在可以在 Remote address 部分看到 NTP Server 的 IP 地址,而 Local address 部分是当前机器的 IP 地址。

接下来,您还可以通过下面的 chronyc 命令验证 client1 机器上的 NTP 服务器源。您应该看到客户端计算机现在使用 IP 地址为 192.168.5.100 的 NTP 服务器 ntp.hwdomain.io 作为默认和首选 NTP 服务器源。

chronyc sources
chronyc sources -v

结论

恭喜!您现在已经在 Rocky Linux 服务器上成功安装了 Chrony NTP 实现软件。您还了解了可用于 NTP 服务器和客户端的 Chrony 的基本用法。最后,您还了解了用于检查 NTP 状态的 chronyc 命令行的基本用法。

©2015-2025 艾丽卡 support@alaica.com