Frage Warum aktualisiert ntpd die Zeit auf meinem Server nicht?


Ich habe ntpd auf meinem Server ausgeführt. Es sind all die Standardeinstellungen, außer dass ich seine Fähigkeit, ein Server für andere Maschinen zu sein, auskommentiert habe:

# restrict -4 default kod notrap nomodify nopeer noquery                                                                    
# restrict -6 default kod notrap nomodify nopeer noquery   
restrict default ignore

Wenn ich renne ntpdate -q ntp.ubuntu.comMir wurde gesagt, dass die Uhr meiner Maschine um 7 Sekunden ausgeschaltet ist.

Was ist los? Wie kann ich diagnostizieren, was passiert? Gibt es ein Protokoll, das ich einschalten kann?

mehr Infos # 1

# ntpq -np
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 91.189.94.4     193.79.237.14    2 u   30   64    7  108.518   -0.136   0.361

mehr Info # 2

So sah das aus, als ich die Frage stellte:

# ntpdate -q ntp.ubuntu.com
server 91.189.94.4, stratum 2, offset 7.191308, delay 0.13310
10 Jan 20:38:09 ntpdate[31055]: step time server 91.189.94.4 offset 7.191308 sec

Und hier ist, wie es jetzt aussieht, nachdem ich ntpd ein paar Mal neu gestartet habe (ich nehme an, das hat es behoben):

# ntpdate -q ntp.ubuntu.com
server 91.189.94.4, stratum 2, offset 0.000112, delay 0.13164
10 Jan 20:47:03 ntpdate[31419]: adjust time server 91.189.94.4 offset 0.000112 sec

mehr Infos # 3

Ich deinstalliert NTP und installierte openntpd und rannte /usr/sbin/ntpd -dund ich sehe eine Ausgabe wie folgt:

reply from 64.73.32.134: offset 6.715003 delay 0.041152, next query 30s
reply from 208.53.158.34: offset 6.700224 delay 0.036263, next query 31s
adjusting local clock by 6.734120s
reply from 72.18.205.156: offset 6.708575 delay 0.035885, next query 30s
reply from 64.73.32.134: offset 6.701463 delay 0.044199, next query 33s

Was für mich ziemlich deutlich anzeigt, dass ich die Zeit auf meinem Server nicht einstellen kann (obwohl, mit normalem ntp, scheint es manchmal zu aktualisieren ...).

mehr Infos # 4

Mein VPS-Anbieter sagt:

Die neuesten Kernel sollten nicht sperren   Dein System soll zu unserer dom0 Uhr sein   auf der sicheren Seite können Sie einstellen   xen.independent_wallclock = 1 in deinem   sysctl.conf.

Ich nehme an, dass das Problem der VPS, die eine CPU benötigt, um korrekte Zeitberechnungen durchzuführen, immer noch nicht behandelt wird.


19
2018-01-10 20:39


Ursprung


Ist das deine gesamte Konfigurationsdatei? Wenn du läufst ntpq -npWas ist die Ausgabe? - David Mackintosh
Wo ist der Rest der Konfiguration? Für Ihren Host gibt es keinen Upstream-Server, von dem Sie Zeit erhalten. - Aaron Copley
Ich habs. Es sieht so aus, als ob ntpd normal funktioniert. NTPd "wird" Ihre Uhr schrittweise zurück in Synchronisation bringen. Eine plötzliche Änderung der Zeit kann bei bestimmten laufenden Prozessen zu großen Problemen führen, daher arbeitet NTP mit einer Beschleunigung oder Verlangsamung der Länge einer Sekunde, um schrittweise Anpassungen vorzunehmen. - Aaron Copley
Ja, der Kernel startet mit der Hardware-Uhr beim Booten, da es beim Booten nur Referenz ist. Wenn es seit vielen Monaten läuft, wie Sie sagen, dann ist es das nicht. Sie können NTP anweisen, mit Ihrer Hardware-Uhr zu synchronisieren. Ich bin mir nicht sicher über Ubuntu, aber auf Red Hat basierten Systemen, die sich in / etc / sysconfig / ntpd befinden. Sie können dort nachsehen oder sich auf die Dokumentation Ihrer Hardware beziehen. - Aaron Copley
Ich glaube auch nicht, dass Sie verstehen, dass ntpdate eine eigenständige Anwendung ist. Es hat nichts mit ntpd zu tun und sollte nicht zur Problembehandlung verwendet werden. Der Grund dafür, dass ntpq mit den Optionen -p zum Anzeigen von Peering vorgeschlagen wurde. Wenn ntpd Ihre Peer (s) sieht, sollte es das System wieder synchronisieren. Sieht aus, als ob jetzt alles gut ist. Ich hatte nur gehofft, einige zusätzliche Einblicke zu geben. Hoffe das hilft in der Zukunft! - Aaron Copley


Antworten:


Sie können die Anmeldung in ntpd aktivieren, indem Sie dies zu ntp.conf hinzufügen:

logfile /var/log/ntpd.log

Quelle: NTP Handbuch

Wenn Sie ntpd ausschalten, können Sie die Uhr über die Befehlszeile aktualisieren? Wenn Sie den Befehl ntpdate ausführen und einen Fehler wie diesen erhalten:

# ntpdate ntp.ubuntu.com
10 Jan 23:47:57 ntpdate[26284]: Can't adjust the time of day: Operation not permitted

Dies bedeutet, dass Sie sich wahrscheinlich auf einem VPS befinden, und in diesem Fall können Sie die Systemuhr nicht ändern - dies kann nur auf dem Host-Computer erfolgen.


9
2018-01-10 20:48



ntpdate ist glücklich, seine Sache zu tun - Aber ich frage mich, ob wenn mein Server neu startet die Uhr auf die Hardware-Uhr oder etwas ähnliches zurückgesetzt wird? - John Bachir
Nachdem Sie ntpdate zum Einstellen der Uhr verwendet haben, verwenden Sie "hwclock --systohc", um die "laufende" Zeit mit Ihrer Hardware-Uhr zu synchronisieren. Es sollte bei einem Neustart synchronisiert werden, aber wenn Ihr Computer abstürzt (oder anderweitig ein Problem beim Herunterfahren hatte), konnte es nicht synchronisiert werden. - Dave Drager
Nun, es ist ein Vhost, also habe ich keinen Zugriff auf die Hardware-Uhr (zumindest hoffe ich nicht!) - John Bachir
Es gibt eine emulierte Hardware-Uhr, genauso wie es ein emuliertes BIOS gibt. - Keith Stokes
Ich war der Administrator auf mehreren VPS-Plattformen, keiner von ihnen (openvz, Xen) hat Zugriff auf die Uhr auf dem System. Sie alle mussten auf der Ebene des Gastgebers erledigt werden. Reichen Sie ein Ticket mit Ihrem Gastgeber ein, um anzuzeigen, dass die Zeit abgelaufen ist, sie sollten ntp laufen und die Zeit für Sie synchronisiert haben. - Dave Drager


In Ordnung, Leute, seit ich diese Frage gestellt habe, habe ich ntp mit der Standardkonfiguration des Herstellers (Ubuntu 10.0.4) neu installiert und es für ein paar Tage laufen lassen. Zu diesem Zeitpunkt, ntpdate -q ntp.ubuntu.com zeigt, dass meine Zeit innerhalb von 0,000216 Sekunden genau ist. Also mussten die Probleme, die ich hatte, mit meiner angepassten Konfiguration sein (wo ich versuchte, es externen Hosts unmöglich zu machen, meinen Server abzufragen, was ich bereits mit meiner Firewall mache, also mache ich mir keine Sorgen). Hier ist die Ubuntu 10.0.4 ntp.conf in ihrer Gesamtheit, mit entfernten Kommentaren:

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 ntp.ubuntu.com

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

restrict 127.0.0.1
restrict ::1

Ich freue mich über Feedback, wie diese Konfiguration verbessert werden könnte.

Ich habe auch ein Ticket mit meinem VPS-Anbieter gemacht, in dem ich nach einer detaillierten Empfehlung für das Beste gefragt werde. Ich wies sie auf diesen Thread und einige andere Dokumentation darauf hin, dass möglicherweise die CPU-Zuweisung ein Timing-Problem verursachen würde. Hier ist, was sie gesagt haben:

Die neuesten Kernel sollten nicht sperren   Dein System soll zu unserer dom0 Uhr sein   auf der sicheren Seite können Sie einstellen   xen.independent_wallclock = 1 in deinem   sysctl.conf. Dies wird sicherstellen, dass die   Serverinstanz folgt nicht   Uhr auf dem Host-Server.

und:

Ich denke du magst falsch verstehen   der genaue Grad, zu dem dieses Problem   betrifft NTP-Clients in einem virtualisierten   Umgebung. Nach meiner Erfahrung auf a   virtualisiertes System auf einem Xen-Host (z   wie unser Setup bei Rackspace Cloud)   Ungenauigkeit, die dadurch ererbt wird, keine a zu haben   dedizierte Systemuhr zur Verarbeitung der   Unterbrechungen betragen Bruchteile von a   zweitens sogar auf hoch belasteten Systemen.   Diese leichte Ungenauigkeit ist leicht   verwaltet von NTP, auch wenn es nur gesetzt ist   um die Serverzeit einmal pro zu aktualisieren   Tag (oder sogar weniger häufig).


7
2018-01-20 20:14





Einer Ihrer Kommentare besagt, dass Sie auf einem vhost laufen. In diesem Fall werden Sie wahrscheinlich nicht viel Erfolg haben, da das Zeitgefühl Ihres Vhosts sowohl von dem tatsächlichen Host, auf dem es läuft, als auch von der allgemeinen Auslastung des Vhosts abhängt.

Abhängig von der verwendeten Virtualisierung erhält der vhost möglicherweise in einem bestimmten Zeitraum keinen konstanten Anteil an Interrupts. Dadurch wird die Uhr schneller oder langsamer als tatsächlich ausgeführt. Da NTP versucht Änderungen unter der Annahme zu messen, dass Ihre Uhr eine feste Rate schneller oder langsamer als der Rest der Welt ist, wird diese Beschleunigung und Verlangsamung ntp passt und es wird wahrscheinlich schließlich aufgeben, mit dem Ergebnis Das ntp -np zeigt Zeitserver, die ntp für ungeeignet gehalten hat.

Ihre beste Wette, wenn dies der Fall ist, ist wahrscheinlich eine Brute-Force rdate -s $server so oft (wie alle sechs Stunden), um die Uhr an der Nase herumzuziehen, damit sie nicht zu sehr aus dem Takt gerät. Aber feinkörnige Genauigkeit ist wahrscheinlich unerreichbar.


4
2018-01-10 22:40



Mein Hosting-Provider (Rackspace Cloud) hat mir gesagt, dass NTP in ihrer Umgebung gut funktioniert. - John Bachir
Sehen Sie meine übermittelte / akzeptierte Antwort für das, was mein VPS-Anbieter über die Uhr gesagt hat, und den Zugriff auf die Uhrzeit. - John Bachir
automatic rdate kann die Uhr rückwärts stellen, was zu unerwarteten Folgen führen kann. - rackandboneman


Dinge, die ich in der Vergangenheit gefunden habe, als ich ntpd anstelle von openntpd benutzt habe:

  1. Sie müssen den Zugriff auf localhost zulassen, damit ntpd ordnungsgemäß startet und tatsächlich Aufgaben erledigt

    restrict 127.0.0.1
    restrict ::1
    
  2. Obwohl Sie Hostnamen für Serverregeln verwenden können, bedeutet das Öffnen von Sicherheitslücken, um mit diesen Servern zu kommunizieren restrict das erfordert IP-Adressen, also musste ich IPs für alles sowieso verwenden.

  3. Sie erwähnen nicht die Verwendung restrict um den Zugriff auf Ihre Server zu ermöglichen. Das ist ein Problem. Probieren Sie Blöcke wie die folgenden aus:

    # ntp.xs4all.nl
    server          194.109.22.18
    restrict        194.109.22.18
    
  4. Sie benötigen mehrere Peers oder Server für ntpd, da versucht wird, Mehrheitsregel-Votings zu verwenden, um mit einem schlechten Akteur umzugehen. Also ein Minimum von 4, um immer noch eine Mehrheit zu haben, wenn du einen verlierst, vorzugsweise 5.

  5. Um den Standardzugriff zu sperren, könnte ich verwenden:

    restrict default notrust nomodify
    

    um noch abfragen zu können, habe ich aber am Ende benutzt restrict default ignore wie Sie, wenn ntpd 4.2 die Bedeutung von geändert hat notrust. Seufzer

  6. Wenn Sie anderen keinen Zeitdienst zur Verfügung stellen, brauchen Sie wahrscheinlich nicht die volle Leistung von regulärem ntpd und Sie sollten darüber nachdenken openntpd stattdessen. Geschrieben von der OpenBSD-Crew, ist es eine weitaus minimalere Implementierung, die Privilegientrennung und eine viel einfachere Konfigurationsdatei verwendet. Es wird angeblich nicht die hochgenaue Zeit liefern, die ntpd benötigt, aber es ist leicht genug für einen normalen Server oder eine normale Workstation.


4
2018-01-17 10:15



Das ist eine großartige Information. Ich überprüfe openntpd. Frage: Stimmen Sie den anderen Leuten zu, die behaupten, dass das Einstellen der Uhr auf einen Vhost unmöglich ist? - John Bachir
Und vielleicht können Sie diese Frage beantworten: serverfault.com/questions/223511/... - John Bachir
Ich verstehe nicht, was Sie mit Ihren verschiedenen sagen restrict Regeln ... beeinflussen diese Regeln, welche Server ich auch für die Zeit abfragen kann? Ich dachte es betraf nur, welche Knoten mich um Zeit bitten können. - John Bachir
Hier ist eine Idee: Möchtest du deine Antwort in eine komplette minimale ntp.conf Datei mit Kommentaren ändern? :-) - John Bachir
Das Einstellen der Uhr auf einem vhost ist nicht ratsam, es sei denn, Sie werden immer mit mindestens einer CPU geplant, da sonst die vom vhost wahrgenommene Zeit nicht mit der Zeit der Außenwelt übereinstimmt. Das dom0 sollte Zeit beibehalten. Die Antwort der anderen Frage ist gut. NTP ist UDP, also müssen Sie Pakete von den Servern zulassen, die Sie nach Zeit abfragen. Mein ntpd ist abgestanden, als ich vor ein paar Jahren zu OpenNTPD wechselte. - Phil P


Wenn Sie vhost auf vmware ausführen, sehen Sie sich den folgenden Artikel an. Er sollte Ihnen helfen http://www.vmware.com/files/pdf/Timekeeping-In-VirtualMachines.pdf


0
2018-01-17 09:05





Hai ..

Sehen Sie sich diese Referenz an, um zu sehen, ob sie bei der Problembehandlung helfen kann:

http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:Ch24: _The_NTP_Server

Vielleicht möchten Sie den Inhalt Ihrer ntpd.conf-Datei, die Ausgabe der Debug-Befehle wie ntpq -p

Und überprüfe dein Datum / Zeit?

Und verifiziere dies auch, ntpdate und Start ntpd ausführen, ist die Zeit synchron?

mit besten Grüßen


0
2018-01-17 11:16





Ich fand mein System aus und rätselte, warum die HW-Uhr bei einem sauberen Herunterfahren nicht mit der Systemuhr synchronisiert war. Anscheinend gibt es eine NTP-Einstellung in sysconfig, die bearbeitet werden muss, um dies zu ermöglichen.

Im /etc/sysconfig/ntpd:

# Set to 'yes' to sync hw clock after successful ntpdate
SYNC_HWCLOCK=no

Ich setze das auf yes. Stellen Sie zunächst sicher, dass Sie einen soliden NTP-Server haben und Ihre Systemuhr zuverlässig ist.

Ich wusste, dass es war - meine Schräglage war 47 Sekunden und meine HW-Uhr war auch 47 Sekunden aus. Bingo! Mein erster Hinweis war Kerberos Fehler in den Protokollen gesehen. Kerberos und viele NAS funktionieren einfach nicht, wenn der Taktversatz zu groß ist.

Einen schönen Tag noch!


0
2018-05-08 21:26



Snap .. das ist RHEL / Centos relevant. Vielleicht nicht Ubuntu. - Wayne Sweatt