Menu Close

28.4. 在隔离的网络中为系统设定 chrony

对于从来不连接到互联网的网络来说,一台计算机被选为主计时服务器。其他计算机要么是主计算机的直接客户端,要么是客户端的客户端。在 master 上,必须使用系统时钟的平均偏移率手动设置 drift 文件。如果 master 被重启,它将从周围的系统获得时间并计算设定系统时钟的平均值。之后它会恢复基于 drift 文件的调整。当使用 settime 命令时会自动更新 drift 文件。

以下流程描述了如何为隔离的网络中的系统设置 chrony

流程

  1. 在选为 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 是允许客户端连接的网络或者子网地址。

  2. 在选择为 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 文件应该是相同的,除了应该省略 localallow 指令。

在隔离的网络中,您还可以使用 local 指令来启用本地参考模式。该模式可允许 chronyd 作为 NTP 服务器实时显示同步,即使它从未同步或者最后一次更新时钟早前发生。

要允许网络中的多个服务器使用相同的本地配置并相互同步,而不让客户端轮询多个服务器,请使用 local 指令的 orphan 选项启用孤立模式。每一服务器需要配置为轮询使用本地的所有其他服务器。这样可确保只有具有最小参考 ID 的服务器具有本地参考活跃状态,并同步其他服务器。当服务器出现故障时,另一个服务器将接管。