NTP 本地查询总是超时

How*_*ard 7 linux redhat ntp centos

我有一个 CentOS 6.4 服务器,它没有任何 iptable 规则,它使用以下配置运行 NTP 守护进程作为服务:

  driftfile /var/lib/ntp/drift

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

  restrict default ignore
  restrict 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

当我运行ntpq查询对等点时,收到以下响应:

ntpq> peers
localhost.localdomain: timed out, nothing received
Run Code Online (Sandbox Code Playgroud)

dig 表明:

localhost.localdomain.  86400   IN  A   127.0.0.1
Run Code Online (Sandbox Code Playgroud)

为什么ntp查询不起作用?

小智 9

在 RHEL/CentOS 6 和 7 上,无论出于何种原因,都会ntpq尝试查询 ::1 处的 IPv6 环回,而不是 127.0.0.1 处的 IPv4 环回。考虑到这一点,我将此行添加到我的/etc/ntp.conf文件中:

restrict ::1
Run Code Online (Sandbox Code Playgroud)

保存文件然后重新启动 ntpd

service ntpd restart
Run Code Online (Sandbox Code Playgroud)

现在命令:

ntpq -p
Run Code Online (Sandbox Code Playgroud)

按预期工作。(这与ntpq在命令行模式下运行然后发出peers命令相同。)

我更喜欢这个解决方案,因为您不必ntpd通过潜在的公共以太网接口启用通信,这可能是一个安全问题。


How*_*ard 2

我本来希望ntpq通过 127.0.0.1 查询本地服务器,但结果是通过以太网接口查询本地服务器。

虽然我不知道为什么本地 ntp 查询必须通过以太网,但在配置文件中我添加了

restrict <eht0 ip address>
Run Code Online (Sandbox Code Playgroud)

现在 NTP 工作正常。