Ich habe ein seltsames Problem mit einem meiner Server. ntpd
und ntpdate
funktionieren nicht, aber das Debuggen zeigt überhaupt keine Fehler. Zuerst dachte ich, vielleicht blockiert eine lokale oder Netzwerk-Firewall den UDP-Port 123, aber das ist nicht der Fall - dieser Server kann den UDP-Port 123 (das NTP-Protokoll) mit dem Internet kommunizieren und Antworten erhalten.
Lassen Sie mich das Problem demonstrieren.
date -s "30 DEC 2012 02:30:00"
- funktioniert, so dass ich die Uhr ohne Fehler erfolgreich einstellen kann.
ntpq -pn pool.ntp.org
- funktioniert, ich erhalte detaillierte Zeitdaten vom Zeitserver und beweise, dass UDP-Pakete funktionieren.
ntpdate -d pool.ntp.org
- Der Debug-Modus funktioniert, zeigt eine Menge Debug-Daten und zeigt den aktuellen Zeitversatz an:
30 Dec 02:38:56 ntpdate[19267]: step time server 208.97.140.69 offset 228.234554 sec
Alles sieht normal aus, bis:
ntpdate pool.ntp.org
- nach einer Pause von 4,7 Sekunden:
30 Dec 02:41:29 ntpdate[19274]: no server suitable for synchronization found
Ähnliches Problem läuft ntpd
, es aktualisiert nicht die Uhr.
Nachdem ntpd gestartet wurde, ntpq -pn
bleiben alle Refids für immer hängen, .INIT.
was bedeutet, dass sie nicht synchronisiert werden können.
/ var / lib / ntp / drift ist die Driftdateieinstellung in ntp.conf, die chmod 644 ist und ntp: ntp gehört, genau wie alle meine anderen Systeme.
Ich habe ein Dutzend anderer NTP-Zeitserver ausprobiert, die iptables-Firewall deaktiviert und bestätigt, dass das Rechenzentrum den UDP-Verkehr nicht filtert. Irgendwelche Ideen, was verhindert, dass ntpd und ntpdate meine Uhr synchronisieren?
Dies ist CentOS 6.3 x64 auf einem dedizierten Server mit Intel-CPU.
Antworten:
ntpdate
(undntpd
) weigern sich (leicht), die Zeit einzustellen, wenn der Versatz zu hoch ist. Beide Anwendungen werden versuchen, Ihre Zeit langsam anzupassen, um Ihr System oder andere Anwendungen, die möglicherweise keine großen Zeitsprünge ausführen, nicht zu verwirren.Versuchen Sie es
ntpdate -b
stattdessen. Es wird die Zeit einstellen, egal wie unvernünftig es erscheinen mag.Möglicherweise müssen Sie auch das
-u
Flag hinzufügen , um dientpdate
Verwendung privilegierter (<1024) Ports zu verhindern. Beachten Sie, dass-u
impliziert wird durch-d
! Und es hört sich so an, als würde-d
es gut funktionieren.Wenn das Hinzufügen
-u
einen Unterschied zwischen funktionierend und nicht funktionierend macht, befindet sich eine Firewall auf dem Weg, die diese Probleme verursacht.Und leider scheint es nicht möglich zu sein,
ntpd
einen uneingeschränkten Port zu nutzen .quelle
ntpdate -b pool.ntp.org
Ergebnisse:30 Dec 03:00:10 ntpdate[1341]: no server suitable for synchronization found
Das ntpdate-Debug-Flag, das-d
Debug-Daten anzeigt, aber nicht wirklich synchronisiert, und das funktioniert:ntpdate -d pool.ntp.org
Ergebnisse:30 Dec 03:00:55 ntpdate[1343]: step time server 128.10.254.6 offset 228.030338 sec
-d
möglicherweise funktioniert, während dies sonst nicht der Fall ist.ntpdate -b -u
funktioniert !!! Genial. Zwei Fragen. Der ntpd-Daemon schlägt immer noch fehl. Wie kann ich dafür sorgen, dass keine privilegierten Ports verwendet werden? Zweite Frage: WARUM schlägt dieser Computer mit ntp an privilegierten Ports fehl, wenn dies bei allen anderen Servern nicht der Fall ist?Können Sie die folgenden Ausgaben in Pastebin bereitstellen?
Synchronisieren Sie von Stratum 1-Servern oder etwas anderem?
Kein für die Synchronisation geeigneter Server bedeutet, dass die Kommunikation zwischen Client und Server nicht hergestellt werden kann.
Wenn wir aus diesem Datensatz keine Hinweise finden können, ist möglicherweise tcpdump erforderlich, um festzustellen, wo das Paket verloren geht.
Stoppen und starten Sie den ntpd-Daemon und warten Sie, bis die Reichweite auf 377 steigt. Stoppen Sie dann den tcpdump. Das sollte weitere Hinweise geben.
quelle