ntpdate 和 ntpd 在 Linux 上無法同步時鐘
我的一台伺服器有一個奇怪的問題。
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。
ntpdate``ntpd
如果偏移量太高,(和)將拒絕(輕鬆)設置時間。這兩個應用程序都會嘗試慢慢調整您的時間,以免混淆您的系統或任何可能無法很好地處理大時間跳躍的應用程序。試試
ntpdate -b
吧。無論看起來多麼不合理,它都會設定時間。您可能還需要添加
-u
標誌,這將阻止ntpdate
使用特權 (<1024) 埠。請注意,-u
由-d
! 聽起來-d
工作正常。如果添加
-u
會在工作和不工作之間產生差異,那麼您在導致這些問題的過程中就有防火牆。