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