NTP läuft, Systemuhr immer noch nicht pünktlich - was gibt es?

24

Ein Debian Stable (5.0.3) Server läuft ntpdund ist mit dem Internet verbunden. Trotzdem ist die Systemuhr ungefähr 5 Minuten falsch.

$ /etc/init.d/ntp status
NTP server is running..

Relevante Teile (denke ich) von /etc/ntp.conf:

driftfile /var/lib/ntp/ntp.drift

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

server 0.europe.pool.ntp.org
server 1.europe.pool.ntp.org
server 2.europe.pool.ntp.org
server 3.europe.pool.ntp.org

Ich weiß, dass NTP die Uhr nicht unbedingt sofort auf den neuesten Stand bringt. Wie viele Stunden oder Tage müssen Sie warten, um zu erwarten, dass NTP seine Arbeit erledigt und die Uhr synchronisiert hat?

Vermisse ich eine andere Konfigurationsdatei oder -option oder mache ich einfach etwas falsch? Ist ntp (anstelle von zB ntpdate ) das richtige Tool dafür? Gibt es eine schnelle Möglichkeit, um zu überprüfen, ob die Konfiguration korrekt ist und ob die ausgewählten NTP-Server die richtige Zeit zurückgeben?

Edit : Ausgabe von ntpq -pis:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ns1.nexellent.n .INIT.          16 u    - 1024    0    0.000    0.000   0.000
 dnscache-madrid .INIT.          16 u    - 1024    0    0.000    0.000   0.000
 sinister.wzw.tu .INIT.          16 u    - 1024    0    0.000    0.000   0.000
 dnscache-frankf .INIT.          16 u    - 1024    0    0.000    0.000   0.000

Edit 2 : ntpdate -u 0.europe.pool.ntp.orgKommando ( vorgeschlagen von brent ) kehrt zurück

17 Dec 17:37:29 ntpdate[14195]: no server suitable for synchronization found

... obwohl auf anderen Rechnern dieser Befehl gut funktioniert. Wir werden uns also die Netzwerk- / Firewall-Einstellungen für diesen bestimmten Server ansehen (der sich in einem anderen Netzwerk befindet und über VPN erreichbar ist).

Lösung : Der Täter war nicht die lokale Firewall auf unserem Server, sondern die Firewall-Einstellungen im umgebenden Netzwerk. Deshalb haben wir den Server-Hosting-Anbieter gebeten, NTP für unsere Computer zuzulassen, und jetzt funktioniert es einwandfrei. Zum Beispiel gibt ntpq -pnow Folgendes zurück:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ns1.eunet.fi    192.36.144.23    2 u   10   64    1    1.043    0.258   0.001
 ns2.eunet.fi    62.142.10.44     2 u    9   64    1    0.671    0.135   0.001
 ns3.eunet.fi    62.142.10.44     2 u    8   64    1    0.750    0.277   0.001

(Wir haben auch zu eunet.fi-Servern gewechselt, die von der Hosting-Firma wieder aufgenommen wurden, aber das ist nebensächlich .) Die Befehle in brents Antwort waren hilfreich, weil sie mir klar machten, dass das Problem beim Netzwerkzugriff auf die NTP-Server und nicht in der NTP-Konfiguration lag selbst. Vielen Dank an alle!

Jonik
quelle
1
Was ist die Ausgabe von 'ntpq -p'?
jscott

Antworten:

23

Stoppen Sie ntpd, führen Sie ntpdate -u 0.europe.pool.ntp.org3-mal aus, starten Sie ntpd, überprüfen Sie ntpq -p, Verzögerung, Offset und Jitter sollten ungleich Null sein.

brent
quelle
1
Und das "Wann" -Feld sollte die Zeit seit dem letzten empfangenen Paket anzeigen.
jscott
Der Befehl ntpdate gibt so etwas wie "17 Dec 17:37:29 ntpdate [14195]: Kein für die Synchronisation geeigneter Server gefunden" zurück. Auf anderen Rechnern ergibt der gleiche Befehl jedoch etwas Sinnvolles! Ich beginne zu vermuten, dass einige Firewall-Einstellungen für diesen bestimmten Server das Problem verursachen ...
Jonik
Wir werden morgen sehen, ob wir diese Netzwerk- / Firewall-Einstellungen sortieren können. Ich akzeptiere dies vorerst, da das Problem höchstwahrscheinlich mit diesen zusammenhängt. Danke, dass du mich in die richtige Richtung gelenkt hast!
Jonik
3
Der ntpdateBefehl funktioniert und synchronisiert meine Uhr, aber 0nach dem Neustart bleiben alle Werte erhalten ntp. Warum würde es funktionieren, wenn ich es manuell mache, aber nicht benutze ntpd? Ich bin übrigens auf Debian.
Mike
Das von ntpdate aus zu tun, anstatt das Problem mit ntp zu beheben, ist auf lange Sicht ziemlich nutzlos. und ich würde keinen Grund kennen, es dreimal laufen zu lassen.
Florian Heigl
1

Wenn ich erraten müsste, warum und unter der Annahme, dass Sie über eine Netzwerkverbindung verfügen und Ihren NTP-Host problemlos sehen können, dann könnte es sein, dass Sie einen großen Wert erreicht haben. Wenn der Zeitunterschied größer als X ist (ich kann mich leider nicht erinnern, was X ist), wird eine Warnung gedruckt und die Zeit wird nicht synchronisiert. Sie können Ihre Syslog-Meldungen auf solche Fälle überprüfen.

Wenn dies der Fall ist, stoppen Sie NTP, führen Sie ntpdate host aus und starten Sie das NTPD neu. Dadurch wird eine Zeitsynchronisierung erzwungen und die Synchronisierung fortgesetzt, wenn Sie weiterhin so weiterschwimmen, dass möglicherweise ein Hardwareproblem vorliegt.

Gary Steven
quelle
Vielen Dank. In diesem Fall scheint das Problem zu sein, dass wir den NTP-Server nicht ohne Probleme sehen können - siehe die Kommentare zu Brents Antwort: serverfault.com/questions/95342/…
Jonik
1

Die "Reach" -Spalten mit 0 deuten darauf hin, dass es nicht möglich war, mit den Servern zu kommunizieren. Nach und nach werden Bits verschoben, um zu zeigen, wie die letzten 8 Versuche verlaufen sind (377 ist also gut, 0 ist schlecht).

araqnid
quelle
Ja, das ist höchstwahrscheinlich das Problem. Siehe Kommentare zu dieser Antwort: serverfault.com/questions/95342/…
Jonik