我开始在我们的几个托管服务器上遇到问题,这让我很困惑。
我收到几台服务器时钟偏差的警告,当我去调查 ntpq -=p 时显示以下内容:
remote refid st t when poll reach delay offset jitter
==============================================================================
ntp1.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000
ntp2.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000
ntp3.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000
显然,服务器无法连接其 ntp 服务器。但是,它的姊妹服务器没有这样的问题,所以我假设问题出在服务器上。可能是 IPtables 中的配置错误。但事实并非如此,IPtables 配置正确。重新启动 ntpd,等待几分钟,但 ntp 服务器仍处于 INIT 状态。为了检查,我运行了
ntpdate ntp1.hetzner.de
然后我收到了时间服务器的响应!我感到很困惑,于是启动了 tcpdump 来获取 UDP 123 流量,然后重启了 ntpd。没有数据包。一个也没有。甚至一个小时后也没有。但是如果我停止 ntp 并运行 ntpdate,我会看到数据包通过网络传输到时间服务器,没有任何问题。
因此,我尝试将时间服务器的 IP 地址放入 ntp.conf,然后立即同步
remote refid st t when poll reach delay offset jitter
==============================================================================
ntp1.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000
ntp2.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000
ntp3.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000
*ntp1.hetzner.de 192.53.103.103 2 u 23 64 1 2.856 -2.246 0.016
ntp2.hetzner.de 192.53.103.103 2 u 22 64 1 0.246 -2.174 0.019
ntp3.hetzner.de 192.53.103.108 2 u 21 64 1 0.262 -1.282 0.037
该输出中有六台服务器,因为我已在 ntp.conf 中附加了服务器 ip 地址
所以我被难住了。ntpd 中是否存在一些奇怪的 DNS 问题,还是我在配置中做了一些愚蠢的事情?这台机器是 Debian 7.8,ntpd 版本是 4.2.6p5
我的 ntp 配置现在如下:
driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1
server ntp1.hetzner.de iburst
server ntp2.hetzner.com iburst
server ntp3.hetzner.net iburst
server 213.239.239.164 iburst
server 213.239.239.165 iburst
server 213.239.239.166 iburst
答案1
我在 Hetzner 有一些服务器,使用安装映像中的默认 ntpd 配置,将使用 IPv6 与 Hetzner 提供的 ntp 服务器进行通信。
鉴于您在输出中看到重复的条目,我强烈怀疑您的 ntpd 已将这些主机名解析为 IPv6 地址而不是 IPv4 地址。您可以使用标志来验证这一点,-n
这样ntpq
它将显示 IP 地址而不是主机名。
配置 ntpd 使其同时使用一些 IPv4 地址和一些 IPv6 地址作为时间源并没有错。我甚至可以说,这样做是一种很好的做法。因此,我不会说您的 ntpd 配置有什么问题。
然而我确实怀疑您的 IPv6 配置存在错误,而这正是您应该修复的问题。