NTP 未收到有用的对等点

NTP 未收到有用的对等点

我有几台运行 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 的文件路径

相关内容