Linux NTP

NTP(网络时间协议)

NTP(网络时间协议)是一种运行在端口 123 UDP 上的协议。NTP 将客户端的时间和日期与主服务器同步。

RHEL 8 不再支持 NTP 包。Chrony是默认的 NTP 客户端,也是 Red Hat Enterprise Linux 8 上的 NTP 服务器。


Service Name= chronyd

chrony 和 ntp 的区别

ntp name chrony name
/etc/ntp.conf /etc/chrony.conf
/etc/ntp/keys /etc/chrony.keys
ntpd chronyd
ntpq chronyc
ntpd.service chronyd.service
ntp-wait.service chrony-wait.service

在系统上安装 chrony 以制作 chrony(NTP) 服务器的步骤。

本实验室工作环境:

  • NTP 服务器 IP:192.168.73.130
  • 客户端 IP : 192.168.73.128
  • 操作系统:CentOS8

1.安装chrony包。


# yum install chrony -y

2.现在启动chronyd服务,使其在系统启动时自动启动并验证运行状态:


# systemctl start chronyd
# systemctl status chronyd
# systemctl enable chronyd

3.要制作一个chrony (NTP) 服务器,安装软件包后需要在chrony 的配置文件/etc/chrony.conf 中进行一些更改。


# vi /etc/chrony.conf

4.现在搜索allow配置指令并取消注释并设置允许客户端访问的网络地址。


# allow 192.168.73.0/24

现在保存并退出。

5.重启chronyd服务


# systemctl restart chronyd

6.现在在 firewalld 配置中打开 NTP 服务以允许传入的 NTP 请求或允许端口 123/udp:


# firewall-cmd --permanent --add-service=ntp

or


# firewall-cmd --permanent --add-port=123/udp

# firewall-cmd --reload

如果由于防火墙的任何原因要删除 chrony 服务。你可以使用以下命令。


# firewall-cmd --permanent --remove-service=chrony

chrony.conf 中使用的指令,有关可以使用的指令的完整列表,请参阅 chronyd 配置文件。我们在这里讨论的一些指令。

allow

allow 指令用于指定允许NTP 连接到充当NTP 服务器的机器 的主机、子网或网络 。默认是不允许连接。

cmdallow

这类似于 allow 指令(参见 部分 allow),不同之处在于它允许NTP 对特定子网或主机的控制访问(而不是 客户端访问)。

语法是相同的。还有一个cmddeny all 与该 指令具有类似行为的 cmdallow all 指令。

dumpdir

该 dumpdir 命令用于定义保存测量历史的目录。

dumponexit

如果此命令存在,则表示 chronyd 应保存其每个时间源的测量历史记录。每当程序退出时,它都会记录所有实例。(见dumpdir 上面的 命令)。

hwtimestamp

该 hwtimestamp 指令启用硬件时间戳以实现极其准确的同步。这意味着它从硬件同步时间。

local

该 local 关键字用于允许 chronyd 从轮询它的客户端的角度看起来与实时同步,即使它没有当前的同步源。

local stratum 10

较大的值 10 表示该时钟与参考时钟相差很多跳,以致其时间不可靠。如果这台计算机曾经访问过另一台最终与参考时钟同步的计算机,那么它几乎肯定会处于小于 10 的层。

因此,为local 命令选择像 10 这样的高值 可以防止机器自己的时间与实时时间混淆,以防它泄漏给具有真实服务器可见性的客户端。

logdir

该指令允许指定写入日志文件的目录。

使用该指令的一个例子是:


logdir /var/log/chrony

7.在客户端安装chrony包:


# yum install chrony

8.安装后,你可以启动启用并验证 chronyd 服务状态:


# systemctl start chronyd
# systemctl enable chronyd
# systemctl status chronyd

9.将系统配置为NTP 服务器的直接客户端。打开/etc/chrony.conf


# vi /etc/chrony.conf

10.现在添加 NTP 服务器地址:

注释掉设置 RHEL 8 NTP 服务器地址的默认 NTP 服务器。


Server 192.168.73.130

保存文件中的更改并关闭它。

11 . 重启chronyd服务


# systemctl restart chronyd

12.现在运行以下命令来显示 chronyd 正在访问客户端的当前时间源(NTP 服务器)。


# chronyc sources

13.在服务器端执行以下命令,显示NTP客户端信息。


# chronyc client

14.你可以使用以下命令来跟踪时间同步过程。


# chronyc tracking