我有几台运行 16.10 的机器,既有服务器也有笔记本电脑,它们都在同一网络上。它们偶尔都会遇到相同的 NTP 问题。时钟略微不同步,当我检查 NTP 对等点时,发现只有一个,而且没有被使用。
> ntpstat
unsynchronised
polling server every 8 s
> sudo ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
10.x.x.x .INIT. 16 u - 64 0 0.000 0.000 0.000
我尝试使用默认的 Ubuntuntp.conf
服务器列表(从 0 到 3)
pool 0.ubuntu.pool.ntp.org iburst
...
还有标准 ntp 列表(也是从 0 到 3),如下所示:
server 0.pool.ntp.org
...
但问题是一样的。未使用的服务器的 IP 地址在所有机器上始终相同,无论它们的ntp.conf
.
我可以通过更改ntp.conf
并重新启动来暂时解决这个问题ntpd
,但我想修复问题的根源,以便自动找到有用的对等点。
我可以尝试什么来修复此问题?
答案1
/etc/ntp.conf
由于默认的 Ubuntu 配置优先考虑通过 DHCP 找到的 NTP 服务器,因此服务器和池被忽略。
有一个脚本,它在 处/etc/dhcp/dhclient-exit-hooks.d/ntp
创建 的副本,删除原始文件中请求的任何特定服务器和池,并替换通过 DHCP 找到的服务器。/etc/ntp.conf
/var/lib/ntp/ntp.conf.dhcp
/etc/init.d/ntp
运行时,如果发现较新的配置/run/ntp.conf.dhcp
,它将使用该配置启动 NTP。可以通过多种方式禁用此功能,但我选择注释掉该行为,如下/etc/init.d/ntp
所示:
# if [ /run/ntp.conf.dhcp -nt /etc/ntp.conf ]; then
# NTPD_OPTS="$NTPD_OPTS -c /run/ntp.conf.dhcp"
# fi
然后删除 DHCP 脚本,重新加载守护进程脚本并重新启动 NTP:
sudo rm /run/ntp.conf.dhcp
sudo systemctl daemon-reload
sudo systemctl restart ntp
现在,当启动 NTP 时,将忽略 DHCP 发现的 NTP 服务器,并使用池来查找工作的 NTP 服务器。
编辑:更新了 Ubuntu 20.04 的文件路径