我们目前有一个 AD 服务器,我们用它作为时间源。
我们的 AD 服务器设置为在本地托管时间,并且 Windows 域客户端可以很好地同步到此机器。我们在主机上完全禁用了防火墙,并且中间没有防火墙(所有机器都在同一个局域网上)。
ntp.conf 如下所示:
driftfile /var/lib/ntp/drift
restrict default
restrict 127.0.0.1
restrict ::1
server 192.168.1.10 iburst prefer
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
logfile /var/log/ntpd.log
我可以停止 ntpd 服务并运行:
ntpdate 192.168.1.10
16 Sep 15:12:18 ntpdate[297583]: adjust time server 192.168.1.10 offset 0.188928 sec
ntpdate -d 192.168.1.10
Looking for host 192.168.1.10 and service ntp
host found : 192.168.1.10
transmit(192.168.1.10)
receive(192.168.1.10)
transmit(192.168.1.10)
receive(192.168.1.10)
transmit(192.168.1.10)
receive(192.168.1.10)
transmit(192.168.1.10)
receive(192.168.1.10)
server 192.168.1.10, port 123
stratum 1, precision -23, leap 00, trust 000
refid [LOCL], delay 0.02579, dispersion 0.00081
transmitted 4, in filter 4
reference time: e4eca422.d31c6b70 Wed, Sep 15 2021 16:56:02.824
originate timestamp: e4edde44.131c82ed Thu, Sep 16 2021 15:16:20.074
transmit timestamp: e4edde43.fbf54378 Thu, Sep 16 2021 15:16:19.984
filter delay: 0.02589 0.02580 0.02579 0.02582
0.00000 0.00000 0.00000 0.00000
filter offset: 0.092817 0.091966 0.091143 0.090334
0.000000 0.000000 0.000000 0.000000
delay 0.02579, dispersion 0.00081
offset 0.091143
16 Sep 15:16:19 ntpdate[298357]: adjust time server 192.168.1.10 offset 0.091143 sec
.系统同步没有问题。我继续启动 ntpd 服务并使用 ntpq -p 进行监控
每次轮询时偏移量都会继续增加。我运行 ntpstat,它仍然报告不同步。
ntpstat
unsynchronised
time server re-starting
polling server every 8 s
运行 ntp 的 Linux 主机无法以这种方式连接到 AD 吗?我读过微软 - Windows 时间的工作原理但未能掌握使用 NTP 连接到 AD 时间服务器的非 Windows 域系统如何处理这个问题。
答案1
经过进一步深入研究后,我终于找到了解决方案。
Windows NTP 服务器(有时出于各种原因)会报告较大的根分散。这反过来又导致 chronyd/ntpd 忽略 ntp 服务器以获取不准确的数据。
为了解决我需要添加:
tos maxdist 16
到我的 /etc/ntp.conf。重新启动服务后,一切开始正常工作。
这篇文章有助于给出一个简单的解释。
https://access.redhat.com/solutions/4652771
我还偶然发现了这篇有关时间不足的帖子,它进一步帮助排除故障并识别问题。