サーバーの1つに奇妙な問題があります。 ntpd
およびntpdate
は機能しませんが、デバッグではエラーはまったく表示されません。最初は、ローカルまたはネットワークのファイアウォールがUDPポート123をブロックしていると思いましたが、そうではありません。このサーバーは、UDPポート123(ntpプロトコル)をインターネットに接続して応答を取得できます。
問題を説明させてください。
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のドリフトファイル設定です。これは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
を追加すると、機能しているものと機能していないものに違いがある場合、これらの問題を引き起こしている途中にファイアウォールがあります。
そして、残念ながら ntpd
に無制限のポートを使用させることはできないようです 。
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を停止します。それはさらなる手がかりを与えるはずです。