你可以使用以下命令轻松保持系统的日期和时间准确
NTP (Network Time Protocol)
. 它使你可以通过网络连接同步计算机时钟并使其准确。基本上,客户端从远程服务器请求当前时间,并使用它来设置自己的时钟。
chrony
是Network Time Protocol (NTP)
你可以使用chrony
:
- 将系统时钟与
NTP
服务器同步 。 - 将系统时钟与参考时钟同步,例如 GPS 接收器。
- 并将系统时钟与手动时间输入同步。
- 作为 服务器或对等点向网络中的其他计算机提供时间服务。
NTPv4(RFC 5905)
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包。
代码语言:javascript复制# yum install chrony -y
2.现在启动chronyd服务,使其在系统启动时自动启动并验证运行状态:
代码语言:javascript复制# systemctl start chronyd
# systemctl status chronyd
# systemctl enable chronyd
3.要制作一个chrony (NTP) 服务器,安装软件包后需要在chrony 的配置文件/etc/chrony.conf
中进行一些更改。
代码语言:javascript复制# vi /etc/chrony.conf
4.现在搜索allow配置指令并取消注释并设置允许客户端访问的网络地址。
代码语言:javascript复制# allow 192.168.73.0/24
现在保存并退出。
5.重启chronyd服务
代码语言:javascript复制# systemctl restart chronyd
6.现在在 firewalld 配置中打开 NTP 服务以允许传入的 NTP 请求或允许端口 123/udp:
代码语言:javascript复制# firewall-cmd --permanent --add-service=ntp
or
# firewall-cmd --permanent --add-port=123/udp
# firewall-cmd --reload
代码语言:javascript复制如果由于防火墙的任何原因要删除 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
代码语言:javascript复制该
local
关键字用于允许chronyd
从轮询它的客户端的角度看起来与实时同步,即使它没有当前的同步源。
local stratum 10
较大的值 10 表示该时钟与参考时钟相差很多跳,以致其时间不可靠。如果这台计算机曾经访问过另一台最终与参考时钟同步的计算机,那么它几乎肯定会处于小于 10 的层。
因此,为
local
命令选择像 10 这样的高值 可以防止机器自己的时间与实时时间混淆,以防它泄漏给具有真实服务器可见性的客户端。
logdir
代码语言:javascript复制该指令允许指定写入日志文件的目录。
使用该指令的一个例子是:
logdir /var/log/chrony
7.在客户端安装chrony包:
代码语言:javascript复制# yum install chrony
8.安装后,你可以启动启用并验证 chronyd 服务状态:
代码语言:javascript复制# systemctl start chronyd
# systemctl enable chronyd
# systemctl status chronyd
9.将系统配置为NTP 服务器的直接客户端。打开/etc/chrony.conf
代码语言:javascript复制# vi /etc/chrony.conf
10.现在添加 NTP 服务器地址:
代码语言:javascript复制注释掉设置 RHEL 8 NTP 服务器地址的默认 NTP 服务器。
Server 192.168.73.130
保存文件中的更改并关闭它。
11 . 重启chronyd服务
代码语言:javascript复制# systemctl restart chronyd
12.现在运行以下命令来显示 chronyd 正在访问客户端的当前时间源(NTP 服务器)。
代码语言:javascript复制# chronyc sources
13.在服务器端执行以下命令,显示NTP客户端信息。
代码语言:javascript复制# chronyc client
14.你可以使用以下命令来跟踪时间同步过程。
代码语言:javascript复制# chronyc tracking