ntpdate: nessun server adatto per la sincronizzazione trovato


82

Il mio orologio è spento , quindi vorrei sincronizzarlo usando ntpdate. Ho provato diversi server NTP diversi, ma per qualche motivo ricevo sempre il seguente messaggio di errore:

$ 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

Domande correlate

Ho esaminato le domande correlate , ma nessuna risolve il mio problema:

Cose che ho provato

Ho installato il pacchetto ntp

... e ho provato a usare il ntpddemone invece ntpdatedell'utilità. Non sincronizzerà neanche il mio tempo; il demone inizia bene, ma il mio orologio rimane spento. Ho anche provato a usare l'esatta /etc/ntp.confdella risposta accettata in quest'ultimo post e a riavviare il demone. Non andare. Comunque, non voglio usare il demone. Sono perfettamente consapevole che ntpdateè considerato "deprecato", e si consiglia di utilizzare ntpd -qinvece. Vedi anche qui:

Ma dal momento ntpdche non funziona neanche per me, il problema sta altrove . E trovo che preferirei non dover installare alcun pacchetto aggiuntivo solo per sincronizzare l'orologio. ntpdateviene preinstallato con Ubuntu e dovrebbe funzionare bene . Quindi ho disinstallato di ntpnuovo il pacchetto.

Forse la porta 123 è bloccata?

Da questo post:

... Ho avuto l'idea che la porta 123 potesse essere bloccata dal mio computer / rete sul mio posto di lavoro. Infatti,

$ 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
...

Ma ancora:

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

Anche con l' -uopzione, che dice ntpdatedi utilizzare una porta senza privilegi per la sincronizzazione (anziché la porta 123) che non è certamente bloccata dal mio posto di lavoro:

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

Forse gli strati sono troppo alti?

Infine, da questo post a serverfault:

... Ho pensato che forse gli strati dei server NTP sono troppo alti. Ma non lo sono. Vediamo un po 'più di informazioni di debug:

$ sudo ntpdate -dv ntp.ubuntu.com
 4 Mar 13:12:24 ntpdate[4523]: ntpdate 4.2.6p5@1.2349-o 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 ... questa è stata lunga, mi dispiace per quello. Sono perplesso. Qualche indizio?

Aggiornamento: informazioni aggiuntive

Non importa se un server NTP HOSTNAMEfigure /etc/ntp.conf, e non importa se il ntpdservizio è in esecuzione o meno, ogni volta che corro sudo ntpdate -u HOSTNAME, ottengo no server suitable for synchronization found. Stessa cosa quando il ntpdservizio non è in esecuzione e ometto l' -uopzione. Quando il ntpdservizio è in esecuzione e ometto l' -uopzione, ottengo invece the NTP socket is in use, exiting.

Anche:

$ 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

Ma l'ora UTC non è corretta qui. In questo momento l'ora UTC è 11:11, no 12:11.

E:

$ sudo hwclock --show
Wed 05 Mar 2014 01:11:56 PM CET  -0.625627 seconds

hai detto di aver eseguito `sudo ntpdate ntp.ubuntu.com` ma lo hai fatto dopo aver aggiunto ntp.ubuntu.comal /etc/ntp.confcampo server? In caso contrario, vedi la seguente risposta
Stormvirux

prova `sudo ntpdate 0.ubuntu.pool.ntp.org
Stormvirux

1
Ciao, vedi il mio commento alla tua risposta. Ho provato ad aggiungere server pool.ntp.orga /etc/ntp.conf, ma ntpdate -u pool.ntp.orggenera lo stesso errore. Ho anche provato questo con ntp.ubuntu.com(aggiungendolo a /etc/ntp.conf, riavviando il ntpservizio, rieseguendo ntpdate -usul server esatto a cui ho appena aggiunto /etc/ntp.conf). Riassumendo, non importa se il server con cui sto tentando di sincronizzarmi è menzionato/etc/ntp.conf . Ricevo l' no server suitable...errore in tutti i casi (tranne quando il ntpservizio è in esecuzione e ometto l' -uopzione, quindi ottengo l' NTP socket in useerrore).
Malte Skoruppa

Ok, ho anche provato sudo ntpdate 0.ubuntu.pool.ntp.org, che è già nel /etc/ntp.conffile. Nessuna fortuna - stesso errore.
Malte Skoruppa

Risposte:


54

Il tuo provider di hosting sta bloccando i pacchetti ntp. Questo approccio pesante è stato implementato da alcuni ISP in risposta agli attacchi DDoS. Potete vedere che ntpdate sta inviando i pacchetti dal ntpdate -vd:

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

Vorrei contattare il proprio ISP e chiedere se stanno bloccando richieste ntp esterne e se hanno un server locale che è possibile utilizzare per la sincronizzazione oraria.

Ci sono un paio di possibilità più oscure, ma è difficile escluderle poiché non hai pubblicato alcun registro da syslog.


6
Hai perfettamente ragione. Sembra che la nostra università stia bloccando le richieste NTP esterne. Offre anche alcuni server NTP locali in alternativa. Questi funzionano perfettamente. Vedo ora che l'output di ntpdate -dvdovrebbe includere anche alcuni receive(...)e non solo transmit(...)messaggi. ;) Grazie molto!
Malte Skoruppa

Una domanda però, come può l'università bloccare i pacchetti NTP quando uso ntpdatecon l' -uopzione? Poiché utilizza una porta non privilegiata anziché la porta 123, significa che le regole del firewall devono essere più complesse del semplice "blocco dei pacchetti in entrata sulla porta 123". Quindi fanno una sorta di ispezione profonda dei pacchetti, allora?
Malte Skoruppa

1
Avranno una regola firewall che dice "Blocca tutto il traffico con una porta di destinazione di 123" e poi un paio di eccezioni per i loro host ntp
dfc

Ho avuto lo stesso problema. Sono stato in grado di risolverlo facendo un traceroute in uscita e ho trovato un server locale sulla rotta che sono stato in grado di sincronizzare con quello che stava eseguendo ntp. Uno di loro però lo stava bloccando. Grazie per i suggerimenti!
jonespm

1
Per me, ntpdate -vddice no servers can be used, exiting.
highBandWidth

47

Questa non è una risposta NTTP, tuttavia ...

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

questa e la versione arricciata qui .


13
È terribile, ma funziona.
Alan Plum,

4
Alimentare dati non autorizzati al comando bash eseguito come root? Fantastico grazie per aver giocato. Questa risposta dovrebbe essere declassata con estremo pregiudizio.
dfc,

1
Molto meno doloroso rispetto a dover gestire il supporto dell'ISP. Inoltre, non è affatto critico se eseguito in una macchina virtuale locale a scopo di test.
Yalok Iy,

Puoi spiegarmi cosa sta facendo?
Suraj Jain,

1
@SurajJain Molti web server restituiscono l' Dateintestazione. In quel comando date -s per la data impostata, wget -S per memorizzare tutte le intestazioni, 2> & 1 per gli errori di registrazione in stdout, grep per selezionare la riga con la data dell'intestazione, tagliare per il giorno della settimana di strip e GMT. Z alla fine per la data di trattamento come UTC. La precisione dipende dalla velocità della rete.
user1516873,

10

Ho avuto lo stesso problema ed è così che l'ho risolto. Ho dato una risposta dettagliata dall'alto verso il basso. Potresti voler saltare al centro della mia risposta o semplicemente fare riferimento agli screenshot di seguito per capirlo a colpo d'occhio.

Prima installa ntpdate (ovviamente l'hai fatto)

sudo apt-get install ntpdate

NEXT È necessario configurare ntp con i server come segue:

Dovresti almeno impostare il seguente parametro nel file di configurazione /etc/ntp.conf: server

Ad esempio, apri il file /etc/ntp.conf usando l'editor di testo nano:

sudo nano /etc/ntp.conf

Individua il parametro del server e, se è vuoto, impostalo come segue:

server pool.ntp.org

Ma di solito in Ubuntu sono già pre-scritti alcuni server che potrebbero essere

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

inserisci qui la descrizione dell'immagine

Quindi salvare il file e riavviare il servizio ntpd :

sudo /etc/init.d/ntpd start

È possibile sincronizzare l'orologio di sistema con un server NTP immediatamente con il comando seguente:

sudo ntpdate pool.ntp.org

o semplicemente eseguire già i server sono definiti

sudo ntpdate 0.ubuntu.pool.ntp.org

o altri server definiti tramite server

generalmente

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

MA dopo ciò c'è la possibilità di ottenere l'errore NTP socket in usecome mostrato di seguito:

inserisci qui la descrizione dell'immagine

In tal caso, corri e basta

ntpdate -u pool.ntp.org 

per aggiornare quando il deamon ntp è in esecuzione

O basta interrompere il Deamon, aggiornare e riavviarlo come segue:

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

e otterrai

inserisci qui la descrizione dell'immagine


Ciao, grazie per la tua risposta dettagliata! Sfortunatamente non ha funzionato per me. Ho quello /etc/ntp.confche è arrivato con Ubuntu, non ho mai fatto cambiamenti. L'ho incollato qui: pastebin.com/bB0sskzv . Ho anche provato ad aggiungere server pool.ntp.orgin cima all'elenco dei server, come mostrato nello screenshot. Lo trovi qui: pastebin.com/YH372Jdi . Con entrambe queste configurazioni , ho eseguito la sequenza di comandi che hai proposto: ho aggiunto uno screenshot al mio post originale. Il risultato è stato esattamente lo stesso sia con il non modificato che con il modificato /etc/ntp.conf. Altre idee? Grazie!
Malte Skoruppa

cosa timedatectl statusritorna
Stormvirux il

Vedi l'output del timedatectl statuscomando nel mio post originale.
Malte Skoruppa

Ora ho provato con tutti e 4 i server predefiniti (vale a dire, {0..3}.ubuntu.pool.ntp.org), sia con che senza -uopzione. Sempre lo stesso errore.
Malte Skoruppa

dimmi anche questo. uscita disudo hwclock --show
Stormvirux

8

Usa htpdate

Se la trasmissione ntp è bloccata nella tua rete, installa htpdate. Sincronizza il tempo tramite il protocollo http. La precisione sarà di 0,5 secondi, secondo la pagina man.

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

Il servizio htpdate verrà avviato quando si installa il pacchetto. Il tempo verrà aggiornato immediatamente in caso di connessione a Internet.


Per favore, non basta copiare e incollare la stessa risposta in ogni argomento che trovi su ntp.
sempaiscuba,

1
Copypasta o no, questa soluzione ha funzionato per me mentre stavo ricevendo l' ntpdate[22109]: no server suitable for synchronization founderrore.
Kneeki,

4

Simile alla risposta di Alex, questo ha funzionato per me per aggirare la porta ntp protetta da firewall:

sudo date -s "$(curl http://s3.amazonaws.com -v 2>&1 | \
  grep "Date: " | awk '{ print $3 " " $5 " " $4 " " $7 " " $6 " GMT"}')"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.