ntpdate: Es wurde kein für die Synchronisation geeigneter Server gefunden

82

Meine Uhr ist ausgeschaltet , deshalb möchte ich sie mit synchronisieren ntpdate. Ich habe verschiedene NTP-Server ausprobiert, aber aus irgendeinem Grund wird immer die folgende Fehlermeldung angezeigt:

$ sudo ntpdate ntp.ubuntu.com
4 Mar 12:27:35 ntpdate[1258]: no server suitable for synchronization found
$ sudo ntpdate pool.ntp.org
4 Mar 12:27:50 ntpdate[1267]: no server suitable for synchronization found
$ sudo ntpdate de.pool.ntp.org
4 Mar 12:28:01 ntpdate[1273]: no server suitable for synchronization found
$ sudo ntpdate us.pool.ntp.org
4 Mar 12:28:12 ntpdate[1276]: no server suitable for synchronization found

Verwandte Fragen

Ich habe verwandte Fragen durchgesehen , aber keine hat mein Problem gelöst:

Dinge, die ich versucht habe

Ich habe das ntp-Paket installiert

... und habe versucht, den ntpdDaemon anstelle des ntpdateDienstprogramms zu verwenden. Meine Zeit wird auch nicht synchronisiert. Der Daemon startet gut, aber meine Uhr bleibt aus. Ich habe sogar versucht, die genaue /etc/ntp.confAntwort aus dem letzten Beitrag zu verwenden und den Daemon neu zu starten. No Go. Wie auch immer, ich möchte den Daemon nicht benutzen. Mir ist durchaus bewusst, dass dies ntpdateals "veraltet" gilt, und es wird empfohlen, ntpd -qstattdessen zu verwenden . Siehe auch hier:

Aber da ntpdes auch bei mir nicht funktioniert, liegt das Problem woanders . Und ich finde, dass ich es vorziehen würde, keine zusätzlichen Pakete zu installieren, nur um die Uhr zu synchronisieren. ntpdatekommt mit Ubuntu vorinstalliert, und es sollte gut funktionieren . Also habe ich das ntpPaket wieder deinstalliert .

Möglicherweise ist Port 123 blockiert?

Von diesem Beitrag:

... Ich bin auf die Idee gekommen, dass Port 123 von meinem Computer / Netzwerk an meinem Arbeitsplatz blockiert sein könnte. Tatsächlich,

$ sudo nmap -p123 -sU -P0 localhost
...
PORT    STATE  SERVICE
123/udp closed ntp 
...
$ sudo ufw allow 123/udp
Rules updated
Rules updated (v6)
$ sudo nmap -p123 -sU -P0 localhost
...
PORT    STATE SERVICE
123/udp open  ntp
...

Aber dennoch:

$ sudo ntpdate ntp.ubuntu.com
4 Mar 13:06:16 ntpdate[4361]: no server suitable for synchronization found

Selbst mit der -uOption, die angibt ntpdate, einen nicht privilegierten Port für die Synchronisierung zu verwenden (anstelle von Port 123), der auf keinen Fall von meinem Arbeitsplatz blockiert wird:

$ sudo ntpdate -u ntp.ubuntu.com
4 Mar 13:06:28 ntpdate[4427]: no server suitable for synchronization found

Vielleicht sind die Schichten zu hoch?

Zuletzt von diesem Beitrag über bei Serverfehler:

... Ich dachte, dass die Schichten von den NTP-Servern vielleicht zu hoch sind. Sie sind es jedoch nicht. Sehen wir uns ein wenig mehr Debugging-Informationen an:

$ sudo ntpdate -dv ntp.ubuntu.com
 4 Mar 13:12:24 ntpdate[4523]: ntpdate [email protected] Wed Oct  9 19:08:07 UTC 2013 (1)
Looking for host ntp.ubuntu.com and service ntp
host found : golem.canonical.com
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
91.189.89.199: Server dropped: no data
91.189.94.4: Server dropped: no data
server 91.189.89.199, port 123
stratum 0, precision 0, leap 00, trust 000
refid [91.189.89.199], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Mon, Jan  1 1900  1:00:00.000
originate timestamp: 00000000.00000000  Mon, Jan  1 1900  1:00:00.000
transmit timestamp:  d6c041ae.e6166441  Tue, Mar  4 2014 13:12:30.898
filter delay:  0.00000  0.00000  0.00000  0.00000 
         0.00000  0.00000  0.00000  0.00000 
filter offset: 0.000000 0.000000 0.000000 0.000000
         0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

server 91.189.94.4, port 123
stratum 0, precision 0, leap 00, trust 000
refid [91.189.94.4], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Mon, Jan  1 1900  1:00:00.000
originate timestamp: 00000000.00000000  Mon, Jan  1 1900  1:00:00.000
transmit timestamp:  d6c041af.1948fc50  Tue, Mar  4 2014 13:12:31.098
filter delay:  0.00000  0.00000  0.00000  0.00000 
         0.00000  0.00000  0.00000  0.00000 
filter offset: 0.000000 0.000000 0.000000 0.000000
         0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

 4 Mar 13:12:33 ntpdate[4523]: no server suitable for synchronization found

Pfeeewww ... das war lang, tut mir leid. Ich bin ratlos. Irgendwelche Hinweise?

Update: zusätzliche Infos

Ganz gleich , ob eine NTP - Server HOSTNAMEZahlen /etc/ntp.conf, und egal , ob der ntpdDienst ausgeführt wird oder nicht, wenn ich laufe sudo ntpdate -u HOSTNAME, bekommen ich no server suitable for synchronization found. Dasselbe gilt, wenn der ntpdDienst nicht ausgeführt wird und ich die Option auslasse-u . Wenn der ntpdDienst ausgeführt wird und ich die -uOption auslasse , erhalte ich stattdessen the NTP socket is in use, exiting.

Ebenfalls:

$ timedatectl status
      Local time: Wed 2014-03-05 13:11:54 CET
  Universal time: Wed 2014-03-05 12:11:54 UTC
        Timezone: Europe/Berlin (CET, +0100)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: no
 Last DST change: DST ended at
                  Sun 2013-10-27 02:59:59 CEST
                  Sun 2013-10-27 02:00:00 CET
 Next DST change: DST begins (the clock jumps one hour forward) at
                  Sun 2014-03-30 01:59:59 CET
                  Sun 2014-03-30 03:00:00 CEST

Die UTC-Zeit ist hier jedoch nicht korrekt. Im Moment ist die UTC-Zeit 11:11nicht 12:11.

Und:

$ sudo hwclock --show
Wed 05 Mar 2014 01:11:56 PM CET  -0.625627 seconds
Malte Skoruppa
quelle
Sie sagten, Sie hätten `sudo ntpdate ntp.ubuntu.com` ausgeführt, aber haben Sie das getan, nachdem Sie ntp.ubuntu.comzu /etc/ntp.confs server field hinzugefügt haben ? Wenn nicht, sehen Sie die folgende Antwort
Stormvirux
versuchen Sie `sudo ntpdate 0.ubuntu.pool.ntp.org
Stormvirux
1
Hallo, siehe meinen Kommentar zu deiner Antwort. Ich habe versucht , das Hinzufügen server pool.ntp.orgzu /etc/ntp.conf, sondern ntpdate -u pool.ntp.orgführt den gleichen Fehler. Ich habe es auch mit versucht ntp.ubuntu.com(Hinzufügen zu /etc/ntp.conf, Neustarten des ntpDienstes, erneutes Ausführen ntpdate -uauf dem Server, zu dem ich gerade hinzugefügt habe /etc/ntp.conf). Zusammenfassend spielt es keine Rolle, ob der Server, mit dem ich synchronisieren möchte, in erwähnt wird/etc/ntp.conf . Ich erhalte no server suitable...in allen Fällen den Fehler (außer wenn der ntpDienst ausgeführt wird und ich die -uOption auslasse , erhalte ich den NTP socket in useFehler).
Malte Skoruppa
Ok, ich habe auch versucht sudo ntpdate 0.ubuntu.pool.ntp.org, was schon in der /etc/ntp.confDatei ist. Kein Glück - gleicher Fehler.
Malte Skoruppa

Antworten:

54

Ihr Hosting-Provider blockiert NTP-Pakete. Dieser hartnäckige Ansatz wurde von einigen ISPs als Reaktion auf die DDoS-Angriffe implementiert. Sie können sehen, dass ntpdate die Pakete vom ntpdate -vd sendet:

transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)

Ich würde mich an Ihren ISP wenden und ihn fragen, ob er externe NTP-Anfragen blockiert und ob er einen lokalen Server hat, den Sie für die Zeitsynchronisierung verwenden können.

Es gibt ein paar weitere undurchsichtige Möglichkeiten, aber es ist schwierig, sie auszuschließen, da Sie keine Protokolle von Syslog gepostet haben.

dfc
quelle
6
Sie haben vollkommen recht. Anscheinend blockiert unsere Universität externe NTP-Anfragen. Alternativ werden auch einige lokale NTP-Server angeboten. Diese funktionieren perfekt. Ich sehe jetzt, dass die Ausgabe von ntpdate -dvauch einige receive(...)und nicht nur transmit(...)Nachrichten enthalten sollte. ;) Danke vielmals!
Malte Skoruppa,
Eine Frage: Wie kann die Universität NTP-Pakete blockieren, wenn ich sie ntpdatemit der -uOption verwende? Da dies einen nicht privilegierten Port anstelle von Port 123 verwendet, bedeutet dies, dass die Firewall-Regeln komplexer sein müssen, als nur "eingehende Pakete auf Port 123 blockieren". Führen sie dann eine Art Deep Packet Inspection durch?
Malte Skoruppa
1
Sie haben eine Firewall-Regel, die besagt: "Blockiere den gesamten Datenverkehr mit einem Zielport von 123" und dann ein paar Ausnahmen für ihre NTP-Hosts
dfc
Ich hatte das gleiche Problem. Ich konnte es beheben, indem ich eine ausgehende Traceroute durchführte, und ich fand einen lokalen Server auf der Route, die ich mit ntp synchronisieren konnte. Einer von ihnen hat es jedoch blockiert. Danke für die Tipps!
jonespm
1
Für mich ntpdate -vdsagt no servers can be used, exiting.
HighBandWidth
47

Dies ist jedoch keine NTP-Antwort ...

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

Dies und die Curl-Version hier .

Alex
quelle
13
Das ist schrecklich, aber es funktioniert.
Alan Plum
4
Nicht bereinigte Daten an den Bash-Befehl weiterleiten, der als Root ausgeführt wird? Super danke fürs Spielen. Diese Antwort sollte mit äußersten Vorurteilen abgelehnt werden.
DFC
1
Viel weniger schmerzhaft als mit der ISP-Unterstützung umzugehen. Auch überhaupt nicht kritisch, wenn zu Testzwecken in einer lokalen VM ausgeführt.
Yalok Iy
Können Sie mir erklären, was es tut?
Suraj Jain
1
@SurajJain Viele Webserver geben DateHeader zurück. In diesem Befehl Datum -s für das eingestellte Datum, wget -S für das Speichern aller Header, 2> & 1 für das Protokollieren von Fehlern in stdout, grep für die Auswahlzeile mit Header-Datum, cut für den Wochentag und GMT. Z am Ende für Behandlungsdatum als UTC. Die Genauigkeit hängt von der Netzwerkgeschwindigkeit ab.
user1516873
10

Ich hatte das gleiche Problem und so habe ich es gelöst. Ich habe eine detaillierte Antwort von oben nach unten gegeben. Vielleicht möchten Sie zur Mitte meiner Antwort springen oder einfach auf die folgenden Screenshots verweisen, um sie auf einen Blick zu verstehen.

Erste ntpdate installieren (Offensichtlich Sie dies getan haben)

sudo apt-get install ntpdate

NÄCHSTE müssen Sie ntp mit Server konfigurieren , wie folgt:

Sie sollten mindestens den folgenden Parameter in der Konfigurationsdatei /etc/ntp.conf festlegen: server

Öffnen Sie zum Beispiel die Datei /etc/ntp.conf mit dem Nano-Texteditor:

sudo nano /etc/ntp.conf

Suchen Sie den Serverparameter und stellen Sie ihn wie folgt ein, falls er leer ist:

server pool.ntp.org

Aber in der Regel sind in Ubuntu schon einige Server vorgeschrieben, die es sein könnten

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

Bildbeschreibung hier eingeben

Speichern Sie dann die Datei und starten Sie den ntpd-Dienst neu :

sudo /etc/init.d/ntpd start

Sie können die Systemuhr sofort mit dem folgenden Befehl mit einem NTP-Server synchronisieren:

sudo ntpdate pool.ntp.org

oder einfach laufen lassen Server sind definiert

sudo ntpdate 0.ubuntu.pool.ntp.org

oder andere Server, die mit server definiert wurden

allgemein

sudo ntpdate <one of the servername in /etc/ntp.conf>

ABER danach besteht die Möglichkeit, dass Sie den folgenden Fehler erhalten NTP socket in use:

Bildbeschreibung hier eingeben

In diesem Fall einfach laufen

ntpdate -u pool.ntp.org 

zu aktualisieren, wenn NTP Deamon ausgeführt wird

ODER stoppen Sie einfach den Deamon, aktualisieren Sie ihn und starten Sie ihn erneut wie folgt:

sudo ntpdate pool.ntp.org
sudo service ntp stop
sudo ntpdate pool.ntp.org
sudo service ntp start

und du wirst bekommen

Bildbeschreibung hier eingeben

Stormvirux
quelle
Hallo, danke für deine ausführliche Antwort! Leider hat es bei mir nicht geklappt. Ich habe die /etc/ntp.conf, die mit Ubuntu mitgeliefert wurde, nie geändert. Ich habe es hier eingefügt: pastebin.com/bB0sskzv . Ich habe auch versucht, server pool.ntp.orgoben in der Serverliste einzufügen, wie in Ihrem Screenshot gezeigt. Finden Sie das hier: pastebin.com/YH372Jdi . Bei diesen beiden Setups habe ich die von Ihnen vorgeschlagene Befehlsfolge ausgeführt: Ich habe meinem ursprünglichen Beitrag einen Screenshot hinzugefügt. Das Ergebnis war sowohl mit dem unmodifizierten als auch mit dem modifizierten genau dasselbe /etc/ntp.conf. Irgendwelche anderen Ideen? Vielen Dank!
Malte Skoruppa
was timedatectl statuszurückkehrt
Stormvirux
Siehe Ausgabe des timedatectl statusBefehls in meinem ursprünglichen Beitrag.
Malte Skoruppa
Ich habe es jetzt mit allen 4 vordefinierten Servern (nämlich {0..3}.ubuntu.pool.ntp.org) versucht, sowohl mit als auch ohne -uOption. Immer der gleiche Fehler.
Malte Skoruppa
Erzähl mir das auch. Ausgabe vonsudo hwclock --show
Stormvirux
8

Verwende htpdate

Wenn die ntp-Übertragung in Ihrem Netzwerk blockiert ist, installieren Sie htpdate. Es synchronisiert die Zeit über das http-Protokoll. Die Genauigkeit liegt laut Manpage bei 0,5 Sekunden.

sudo apt-get install htpdate
sudo htpdate -a google.com

Der htpdate-Dienst wird gestartet, wenn Sie das Paket installieren. Die Uhrzeit wird sofort aktualisiert, wenn eine Internetverbindung besteht.

nr
quelle
Bitte kopieren Sie nicht in jedes Thema, das Sie zu ntp finden, die gleiche Antwort und fügen Sie sie ein.
Sempaiscuba
1
Copypasta oder nicht, diese Lösung hat bei mir funktioniert, als ich den ntpdate[22109]: no server suitable for synchronization foundFehler erhielt.
Kneeki
4

Ähnlich wie bei Alex 'Antwort funktionierte dies für mich, weil ich den mit einer Firewall versehenen NTP-Port umgehen konnte:

sudo date -s "$(curl http://s3.amazonaws.com -v 2>&1 | \
  grep "Date: " | awk '{ print $3 " " $5 " " $4 " " $7 " " $6 " GMT"}')"
Willem van Ketwich
quelle