ntpd 服务器始终处于“INIT”模式

ntpd 服务器始终处于“INIT”模式

我在 ubuntu (10.04) 机器上运行 ntpd 服务器。但它始终处于“INIT”状态,如下所示。

lyra@ws07475:~$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 europium.canoni .INIT.          16 u    - 1024    0    0.000    0.000   0.000
 lyra@ws07475:~$ 

当然,这意味着它没有守时。

我该如何正确启动“ntpd”服务器?请帮忙。

答案1

有时互联网路由器在传输 NTP 流量时会遇到问题。原因是 UDP 比 TCP 更难转发,有时设备本身的端口甚至用于 NTP 守护程序。

在我的情况下,DD-WRT 阻止了我的所有 NTP 流量。你可能已经注意到了:NTP 不太擅长报告出现问题。尤其不擅长报告什么出了问题。以下是关于 DD-WRT 的帖子链接: https://superuser.com/questions/386240/allow-lan-clients-to-sync-time-through-dd-wrt

您可以使用工具 ntpdate(ntpd 的一种一次性使用版本)轻松检查路由器是否阻止 NTP:

  • ntpdate pool.ntp.org- 只要您以 root 身份运行此调用,并且 ntpd 未同时运行,此调用的行为就与 ntpd 类似。如果您的路由器阻止 NTP,此命令将失败
  • ntpdate -u pool.ntp.org- 此调用使用非特权端口,这更有可能起作用。

如果您的路由器阻止了 NTP,您该怎么办?

不幸的是,除了打开端口 123 之外,ntpd 不支持任何其他通信方式。

幸运的是,有使用不同端口的替代实现:

我使用 OpenNTPD 获得了不错的效果,但论坛上也有人推荐 chrony

您还可以只设置一台 OpenNTPD 主机,并让网络中的所有其他机器使用其默认 NTP 实现同步到该机器。

答案2

您的 /etc/ntp.conf 文件中似乎只有一个服务器。我有:

server ntp.ubuntu.com
server 0.north-america.pool.ntp.org
server 1.north-america.pool.ntp.org
server 2.north-america.pool.ntp.org
server 3.north-america.pool.ntp.org

至少再添加几个可能是个好主意。

但是,我可以访问 europium.canonical.com(第一个),因此我怀疑问题出在远程站点与 ntp 端口(123)之间的通信。防火墙可能会影响这一点,NAT 转换也会影响这一点。

请检查您可能运行的任何防火墙,并考虑设置您的 nat(假设您正在运行 nat)以将指向端口 123 的数据包转发到您的服务器。

答案3

我在使用 ntpd 时也遇到了类似的问题[电子邮件保护]在 OpenWrt 22.03.3 下

ntpdate 运行正常,因此该问题与 NTP 服务器或流量路由和限制无关。就我而言,ntpd 错误地绑定到接口或处理来自它们的数据。换句话说,ntpd 发送数据包,但由于内部错误而无法获得回复。作为解决方法,您必须在 conf 文件中添加:

接口监听 ethX

其中 ethX 是 ntpd 应该监听来自 NTP 服务器的应答的接口

相关内容