Linux

NTP 本地查詢總是超時

  • January 14, 2019

我有一個 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

當我執行ntpq查詢對等方時,收到以下響應:

ntpq> peers
localhost.localdomain: timed out, nothing received

dig表明:

localhost.localdomain.  86400   IN  A   127.0.0.1

為什麼ntp查詢不起作用?

我期待ntpq通過 127.0.0.1 查詢本地伺服器,但結果是通過乙太網網路介面查詢本地伺服器。

雖然我不知道為什麼本地 ntp 查詢必須通過乙太網,但在配置文件中我添加了

restrict <eht0 ip address>

現在 NTP 工作正常。

在 RHEL / CentOS 6 和 7 上,無論出於何種原因,ntpq都會嘗試在 ::1 處查詢 IPv6 環回,而不是在 127.0.0.1 處查詢 IPv4 環回。考慮到這一點,我將這一行添加到我的/etc/ntp.conf文件中:

restrict ::1

保存文件然後重新啟動ntpd

service ntpd restart

現在命令:

ntpq -p

按預期工作。(這與ntpq在命令行模式下執行然後發出peers命令相同。)

我更喜歡這個解決方案,因為您不必ntpd通過潛在的公共乙太網介面啟用通信,這可能是一個安全問題。

引用自:https://serverfault.com/questions/558596