我有一台 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 查询不起作用?
答案1
在 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
通过潜在的公共以太网接口启用通信,这可能是一个安全问题。
答案2
我原本期望ntpq
通过 127.0.0.1 查询本地服务器,但结果是通过以太网网络接口查询本地服务器。
虽然我不知道为什么本地 ntp 查询必须通过以太网,但在配置文件中我添加了
restrict <eht0 ip address>
现在 NTP 运行正常。
答案3
读到第二个答案后,我意识到这个问题的原因可能出在 /etc/hosts 上。然后在 /etc/hosts 上添加 localhost 并重试,成功了。
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
前:
ems@rack6-storage-2:~$ sudo service ntp stop ; sudo ntpdate 0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org ; sudo service ntp start ; PATH=/usr/bin:/usr/sbin ntpdc -p
* Stopping NTP server ntpd
...done.
18 Dec 08:18:31 ntpdate[35729]: adjust time server 202.156.0.34 offset -0.000467 sec
* Starting NTP server ntpd
...done.
localhost.sdcorp.global.sandisk.com: timed out, nothing received
***Request timed out
后:
ems@rack6-storage-2:~$ sudo vim /etc/hosts
ems@rack6-storage-2:~$ sudo service ntp stop ; sudo ntpdate 0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org ; sudo service ntp start ; PATH=/usr/bin:/usr/sbin ntpdc -p
* Stopping NTP server ntpd
...done.
18 Dec 08:27:09 ntpdate[36056]: adjust time server 202.156.0.34 offset 0.015872 sec
* Starting NTP server ntpd
...done.
remote local st poll reach delay offset disp
=======================================================================
=golem.canonical 10.242.43.103 16 64 0 0.00000 0.000000 4.00000
=frontier.innola 10.242.43.103 16 64 0 0.00000 0.000000 4.00000
=sg01.7asecond.c 10.242.43.103 16 64 0 0.00000 0.000000 4.00000
=time2.maxonline 10.242.43.103 16 64 0 0.00000 0.000000 4.00000
=pontoon.latt.ne 10.242.43.103 16 64 0 0.00000 0.000000 4.00000
答案4
在建议“重新安装”之前,人们应该更仔细地阅读给定的配置。这个错误非常明显。
据我所知,您已经配置了 NTP服务器但你指出的是水池
服务器 0.pool.ntp.org
尝试
池 0.pool.ntp.org
或者使用专用服务器而不是池的“服务器”。