ntpdate和ntpd在Linux上无法同步时钟


11

我的一台服务器遇到一个奇怪的问题。 ntpd并且ntpdate无法正常工作,但是调试完全没有显示任何错误。起初我以为可能是本地或网络防火墙阻止了UDP端口123,但事实并非如此-该服务器可以将UDP端口123(ntp协议)与Internet通讯并获得答案。

让我演示一下这个问题。

date -s "30 DEC 2012 02:30:00" -有效,因此我可以成功设置时钟而不会出错。

ntpq -pn pool.ntp.org -可以,我确实从时间服务器获取了详细的时间数据,并证明UDP数据包正在运行。

ntpdate -d pool.ntp.org -调试模式有效,显示大量调试数据并显示当前时间偏移: 30 Dec 02:38:56 ntpdate[19267]: step time server 208.97.140.69 offset 228.234554 sec

一切看起来都很正常,直到: ntpdate pool.ntp.org-暂停4.7秒后,它会返回: 30 Dec 02:41:29 ntpdate[19274]: no server suitable for synchronization found

运行类似的问题ntpd,它不会更新时钟。

ntpd启动后,ntpq -pn所有refid都永远卡住,.INIT.这意味着它们无法同步。

/ var / lib / ntp / drift是ntp.conf中的driftfile设置,它是chmod 644,归ntp:ntp所有,与我的所有其他系统相同。

我尝试了其他十二个ntp时间服务器,禁用了iptables防火墙,并确认数据中心未过滤udp流量。有什么想法阻止ntpd和ntpdate同步我的时钟吗?

这是具有Intel CPU的专用服务器上的CentOS 6.3 x64。


2
您能否阐明“专用服务器”的含义是物理硬件还是虚拟机?
Shane Madden

专用服务器=物理硬件。不是虚拟机。
Crash Override

Answers:


13

ntpdatentpd如果偏移量过高,(和)将拒绝(轻松)设置时间。这两个应用程序都将尝试慢慢调整您的时间,以免混淆您的系统或任何可能无法很好处理大时间跳动的应用程序。

试试吧ntpdate -b。无论看起来多么不合理,它都会设置时间。

您可能还需要添加-u标志,这将阻止ntpdate使用特权(<1024)端口。请注意,-u是通过暗示-d!听起来好像-d工作正常。

如果添加-u使正常工作和无效工作有所不同,则说明导致这些问题的途径上有防火墙。

不幸的是,似乎不可能ntpd使用不受限制的端口


仍然失败。ntpdate -b pool.ntp.org结果:30 Dec 03:00:10 ntpdate[1341]: no server suitable for synchronization foundntpdate调试标志,-d它将显示调试数据,但实际上并未同步,并且有效:ntpdate -d pool.ntp.org结果:30 Dec 03:00:55 ntpdate[1343]: step time server 128.10.254.6 offset 228.030338 sec
Crash Override

@CrashOverride,我更新了我的答案以尝试解释为什么-d可能有效,否则无效。
chutz

1
ntpdate -b -u作品!!!太棒了 两个问题。ntpd守护程序仍然失败,如何使它不使用特权端口?第二个问题,为什么我的所有其他服务器都没有在特权端口上使本机在ntp上失败?
Crash Override

嗯,也许有防火墙阻止了我服务器上的源UDP端口123。检查。再次感谢您的回答。
Crash Override

我更新了一个链接,以说明无法更改ntpd源端口。抱歉,我没有找到该链接。
chutz

2

您可以在pastebin中提供以下输出吗?

cat /etc/ntp.conf
cat /etc/sysconfig/ntpd
ntpq -pn
ntpdc -c sysstat
ntpdc -c kerninfo
ntpdc -c loopinfo
ntpdate -d <time-server-IP>
ntptrace

您是否正在从第1层服务器或其他任何服务器进行同步。

没有适用于同步的服务器意味着它表明无法建立客户端与服务器之间的通信。

如果我们从这组数据中找不到线索,则可能需要使用tcpdump来查看丢失数据包的位置。

tcpdump -s0 -i ethX -p udp -w /tmp/ntp.pcap

停止并启动ntpd守护程序,并等待到达377的范围,然后停止tcpdump。那应该提供进一步的线索。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.