18.4. 为不同的环境设置 chrony
18.4.1. 在隔离网络中为系统设置 chrony
对于从来不连接到互联网的网络来说,一台计算机被选为主计时服务器。其他计算机要么是主计算机的直接客户端,要么是客户端的客户端。在 master 上,必须使用系统时钟的平均偏移率手动设置 drift 文件。如果 master 被重启,它将从周围的系统获得时间并计算设定系统时钟的平均值。之后它会恢复基于 drift 文件的调整。当使用 settime 命令时会自动更新 drift
文件。
在选择成为 master 的系统上,以 root
用户身份运行一个文本编辑器来编辑 /etc/chrony.conf
,如下所示:
driftfile /var/lib/chrony/drift commandkey 1 keyfile /etc/chrony.keys initstepslew 10 client1 client3 client6 local stratum 8 manual allow 192.0.2.0
其中 192.0.2.0
是允许客户端连接的网络或者子网地址。
在选择作为 master 客户端的系统上,以 root
用户身份运行一个文本编辑器来编辑 /etc/chrony.conf
,如下所示:
server master driftfile /var/lib/chrony/drift logdir /var/log/chrony log measurements statistics tracking keyfile /etc/chrony.keys commandkey 24 local stratum 10 initstepslew 20 master allow 192.0.2.123
其中 192.0.2.123
是 master 的地址, master
是 master 的主机名。带有此配置的客户端如果重启 master 将重新同步。
在不是 master 客户端的客户端系统中,/etc/chrony.conf
文件应当相同,除了应该省略 local
和 allow
指令。
在隔离网络中,您还可以使用 local
指令来启用本地参考模式,允许 chronyd
作为 NTP 服务器实时显示同步,即使它从未同步或者最后一次更新时钟早前发生。
要允许网络中的多个服务器使用相同的本地配置并相互同步,而不让客户端轮询多个服务器,请使用 local
指令的 orphan
选项启用孤立模式。每一服务器需要配置为通过 本地
轮询所有其他服务器。这样可确保只有具有最小参考 ID 的服务器具有本地参考活跃状态,并同步其他服务器。当服务器出现故障时,另一台服务器将接管。