ntpdate: no se encontró ningún servidor adecuado para la sincronización

82

Mi reloj está apagado , así que me gustaría sincronizarlo usando ntpdate. Probé varios servidores NTP diferentes, pero por alguna razón siempre recibo el siguiente mensaje de error:

$ 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

Preguntas relacionadas

He revisado preguntas relacionadas , pero ninguna resuelve mi problema:

Cosas que he intentado

Instalé el paquete ntp

... e intenté usar el ntpddemonio en lugar de la ntpdateutilidad. Tampoco sincronizará mi tiempo; El demonio comienza bien, pero mi reloj permanece apagado. Incluso intenté usar exactamente /etc/ntp.confla respuesta aceptada en la última publicación y reiniciar el demonio. No vayas. De todos modos, no quiero usar el demonio. Soy perfectamente consciente de que ntpdatese considera "en desuso" y se recomienda su uso ntpd -q. Ver también aquí:

Pero como ntpdtampoco funciona para mí, el problema radica en otra parte . Y encuentro que preferiría no tener que instalar ningún paquete adicional solo para sincronizar el reloj. ntpdateviene preinstalado con Ubuntu, y debería funcionar bien . Así que desinstalé el ntppaquete nuevamente.

¿Quizás el puerto 123 está bloqueado?

De esta publicación:

... Tengo la idea de que el puerto 123 puede estar bloqueado desde mi computadora / red en mi lugar de trabajo. En efecto,

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

Pero aún:

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

Incluso con la -uopción, que le dice ntpdateque use un puerto sin privilegios para la sincronización (en lugar del puerto 123) que ciertamente no está bloqueado en mi lugar de trabajo:

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

¿Quizás los estratos son demasiado altos?

Por último, de esta publicación en serverfault:

... Pensé que quizás los estratos de los servidores NTP son demasiado altos. Sin embargo, no lo son. Veamos un poco más de información de depuración:

$ 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 ... este fue largo, lo siento. Estoy perplejo. ¿Alguna pista?

Actualización: información adicional

No importa si un servidor NTP HOSTNAMEfigura /etc/ntp.conf, y no importa si el ntpdservicio se está ejecutando o no, cada vez que ejecuto sudo ntpdate -u HOSTNAME, obtengo no server suitable for synchronization found. Lo mismo cuando el ntpdservicio no se está ejecutando y omito la -uopción. Cuando el ntpdservicio se está ejecutando y omito la -uopción, en su lugar obtengo the NTP socket is in use, exiting.

También:

$ 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

Pero la hora UTC no es correcta aquí. En este momento 11:11, la hora UTC es , no 12:11.

Y:

$ sudo hwclock --show
Wed 05 Mar 2014 01:11:56 PM CET  -0.625627 seconds
Malte Skoruppa
fuente
dijiste que ejecutaste `sudo ntpdate ntp.ubuntu.com` pero ¿lo hiciste después de agregarlo ntp.ubuntu.comal /etc/ntp.confcampo del servidor s? Si no, vea la siguiente respuesta
Stormvirux
pruebe `sudo ntpdate 0.ubuntu.pool.ntp.org
Stormvirux
1
Hola, mira mi comentario a tu respuesta. He intentado añadir server pool.ntp.orga /etc/ntp.conf, pero ntpdate -u pool.ntp.orgarroja el mismo error. También probé esto con ntp.ubuntu.com(agregándolo /etc/ntp.conf, reiniciando el ntpservicio, volviéndome a ejecutar ntpdate -uen el servidor exacto que acabo de agregar /etc/ntp.conf). En resumen, no importa si el servidor con el que intento sincronizar se menciona/etc/ntp.conf . Recibo el no server suitable...error en todos los casos (excepto cuando el ntpservicio se está ejecutando y omito la -uopción, luego aparece el NTP socket in useerror).
Malte Skoruppa
Ok, también lo intenté sudo ntpdate 0.ubuntu.pool.ntp.org, que ya está en el /etc/ntp.confarchivo. Sin suerte, el mismo error.
Malte Skoruppa

Respuestas:

54

Su proveedor de alojamiento está bloqueando paquetes ntp. Este enfoque pesado ha sido implementado por algunos ISP en respuesta a los ataques DDoS. Puede ver que ntpdate está enviando los paquetes desde ntpdate -vd:

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

Me pondría en contacto con su ISP y le preguntaría si están bloqueando las solicitudes ntp externas y si tienen un servidor local que pueda usar para la sincronización horaria.

Hay un par de posibilidades más oscuras, pero es difícil descartarlas, ya que no ha publicado ningún registro de syslog.

dfc
fuente
66
Tienes toda la razón. Parece que nuestra universidad está bloqueando las solicitudes externas de NTP. También ofrece algunos servidores NTP locales como alternativa. Estos funcionan perfectamente. Ahora veo que la salida de ntpdate -dvtambién debe incluir algunos receive(...)y no solo transmit(...)mensajes. ;) ¡Muchas gracias!
Malte Skoruppa
Una pregunta, sin embargo, ¿cómo puede la universidad bloquear los paquetes NTP cuando lo uso ntpdatecon la -uopción? Dado que esto utiliza un puerto sin privilegios en lugar del puerto 123, significa que sus reglas de firewall deben ser más complejas que simplemente "bloquear los paquetes entrantes en el puerto 123". Entonces, ¿hacen algún tipo de inspección profunda de paquetes?
Malte Skoruppa
1
Tendrán una regla de firewall que dice "Bloquear todo el tráfico con un puerto de destino de 123" y luego un par de excepciones para sus hosts ntp
dfc
Yo tuve el mísmo problema. Pude resolverlo haciendo un traceroute de salida y encontré un servidor local en la ruta que pude sincronizar que estaba ejecutando ntp. Sin embargo, uno de ellos lo estaba bloqueando. ¡Gracias por los consejos!
jonespm
1
Para mí, ntpdate -vddice no servers can be used, exiting.
highBandWidth
47

Sin embargo, esta no es una respuesta ntp ...

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

esto y la versión curl aquí .

Alex
fuente
13
Esto es terrible, pero funciona.
Alan Plum
44
¿Alimentando datos no saneados al comando bash ejecutado como root? Impresionante gracias por jugar. Esta respuesta debe ser rechazada con prejuicio extremo.
DFC
1
Mucho menos doloroso que tener que lidiar con el soporte del ISP. Además, no es crítico en absoluto si se ejecuta en una máquina virtual local para fines de prueba.
Yalok Iy
¿Puedes explicarme qué está haciendo?
Suraj Jain
1
@SurajJain Muchos servidores web devuelven el Dateencabezado. En ese comando date -s para establecer la fecha, wget -S para almacenar todos los encabezados, 2> y 1 para registrar errores en stdout, grep para la línea de selección con la fecha del encabezado, cortar para el día de la semana y GMT. Z al final de la fecha de tratamiento como UTC. La precisión dependerá de la velocidad de la red.
user1516873
10

Tuve el mismo problema y así es como lo resolví. He dado una respuesta detallada de arriba a abajo. Es posible que desee saltar a la mitad de mi respuesta o simplemente consultar las capturas de pantalla a continuación para comprenderlo de un vistazo.

Primero instala ntpdate (Obviamente lo has hecho)

sudo apt-get install ntpdate

SIGUIENTE Debe configurar ntp con los servidores de la siguiente manera:

Al menos debe establecer el siguiente parámetro en el archivo de configuración /etc/ntp.conf: server

Por ejemplo, abra el archivo /etc/ntp.conf con el editor de texto nano:

sudo nano /etc/ntp.conf

Localice el parámetro del servidor y, si está vacío, configúrelo de la siguiente manera:

server pool.ntp.org

Pero generalmente en ubuntu ya algunos servidores están preescritos, lo que podría ser

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

ingrese la descripción de la imagen aquí

Luego, guarde el archivo y reinicie el servicio ntpd :

sudo /etc/init.d/ntpd start

Puede sincronizar el reloj del sistema con un servidor NTP inmediatamente con el siguiente comando:

sudo ntpdate pool.ntp.org

o simplemente ejecutar ya los servidores están definidos

sudo ntpdate 0.ubuntu.pool.ntp.org

u otros servidores que se definen usando el servidor

generalmente

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

PERO después de eso hay una posibilidad de que obtenga el error NTP socket in usecomo se muestra a continuación:

ingrese la descripción de la imagen aquí

En ese caso solo corre

ntpdate -u pool.ntp.org 

actualizar cuando se ejecuta ntp deamon

O simplemente detenga el demonio, actualícelo y vuelva a iniciarlo de la siguiente manera:

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

y obtendrás

ingrese la descripción de la imagen aquí

Stormvirux
fuente
Hola, gracias por tu respuesta detallada! Lamentablemente no funcionó para mí. Tengo el /etc/ntp.confque vino junto con Ubuntu, nunca le hice ningún cambio. Lo pegué aquí: pastebin.com/bB0sskzv . Yo también intentado añadir server pool.ntp.orgen la parte superior de la lista de servidores, como se muestra en la que captura de pantalla. Encuentra eso aquí: pastebin.com/YH372Jdi . Con ambas configuraciones , ejecuté la secuencia de comandos que propusiste: agregué una captura de pantalla a mi publicación original. El resultado fue exactamente el mismo con los no modificados y los modificados /etc/ntp.conf. ¿Alguna otra idea? ¡Gracias!
Malte Skoruppa
qué timedatectl statusregresa
Stormvirux
Ver salida del timedatectl statuscomando en mi publicación original.
Malte Skoruppa
Ahora lo he intentado con los 4 servidores predefinidos (a saber, {0..3}.ubuntu.pool.ntp.org), con y sin -uopción. Siempre el mismo error.
Malte Skoruppa
solo dime este también. salida desudo hwclock --show
Stormvirux
8

Use htpdate

Si la transmisión ntp está bloqueada en su red, instale htpdate. Se sincroniza el tiempo a través del protocolo http. La precisión será de 0,5 segundos, según la página del manual.

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

El servicio htpdate se iniciará cuando instale el paquete. El tiempo se actualizará de inmediato si hay conexión a Internet.

nr
fuente
No solo copie y pegue la misma respuesta en cada tema que encuentre sobre ntp.
sempaiscuba
1
Copypasta o no, esta solución funcionó para mí mientras recibía el ntpdate[22109]: no server suitable for synchronization founderror.
kneeki
4

Similar a la respuesta de Alex, esto funcionó para mí para evitar el puerto ntp que está siendo cortafuegos:

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