我正在尝试将一台机器与另一台机器进行 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
如果失败了,则肯定存在连接问题:
- 验证两台机器是否可以通过 ICMP(ping)互相通信
- 如果可以,请验证 10.99.84.134 上没有防火墙设置阻止与 ntp 的连接
如果没有防火墙问题,请在 10.99.84.134 上验证 ntp 是否正在监听
netstat -tapn | grep 123
答案4
确保防火墙允许 udp 端口 123[Out]。我遇到了同样的问题,这是因为防火墙阻止了端口 123。