使用 ntpd 同步服务器时间时出现问题

使用 ntpd 同步服务器时间时出现问题

我正在尝试将一台机器与另一台机器进行 ntp 同步。两台机器都运行 Debian lenny,我在两台机器上都安装了 ntp 包。我将服务器配置为与外部机器同步,方法是:

server IP.ADDRESS iburst

在它的 /etc/ntp.conf 文件中。

我通过将服务器放入客户端的 /etc/ntp.conf 中来配置客户端与服务器同步。

但是,它们似乎没有同步。ntpq 显示状态为 INIT,根据文档,这表示“该关联尚未首次同步”

# ntpq -n
ntpq> pe
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 10.99.84.134    .INIT.          16 u  665 1024    0    0.000    0.000   0.000

ntpq -> 如条件行中显示“拒绝”:

# ntpq
ntpq> as

ind assID status  conf reach auth condition  last_event cnt
===========================================================
  1 40102  8000   yes   yes  none    reject

有什么想法可以解决这个问题吗?(我宁愿不使用 ntpdate)。

答案1

如今,许多发行版都在配置 ntpd 以限制访问。如果restrict服务器的 中存在行/etc/ntp.conf,则只有与这些行匹配的主机/网络才被允许连接到 ntpd。您可能需要为restrict要允许同步到服务器的主机或网络添加其他行。例如,要让您提到的客户端同步,请添加以下行之一:

# allow just this host
restrict 10.99.84.134 nomodify notrap

# or allow the whole /24 segment
restrict 10.99.84.0 mask 255.255.255.0 nomodify notrap

此后,重新启动 ntpd,您的客户端就应该能够同步。

答案2

问题是服务器本身无法与上游服务器同步。解决方案是像这样更改服务器配置:

重新启用 Debian 池服务器,而不是我的单个硬编码服务器。

server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
server 3.debian.pool.ntp.org iburst

我添加了一个本地时钟参考,这使得服务器即使不同步也看起来与客户端同步,这是我的设置所需的行为。

server 127.127.1.0
fudge 127.127.1.0 stratum 10

一旦我做出了这些更改,服务器就会设法同步自身,然后客户端就会设法与服务器同步。

答案3

您还可以说存在某种连接问题,因为“覆盖范围”仍然为 0。

暂时关闭 ntp,然后尝试运行 ntpdate 来同步一次:

ntpdate 10.99.84.134

如果失败了,则肯定存在连接问题:

  1. 验证两台机器是否可以通过 ICMP(ping)互相通信
  2. 如果可以,请验证 10.99.84.134 上没有防火墙设置阻止与 ntp 的连接
  3. 如果没有防火墙问题,请在 10.99.84.134 上验证 ntp 是否正在监听

    netstat -tapn | grep 123

答案4

确保防火墙允许 udp 端口​​ 123[Out]。我遇到了同样的问题,这是因为防火墙阻止了端口 123。

相关内容