update the socket ntpdate exiting unix time ntpd

unix - ntpdate - the ntp socket is in use, exiting



NTPD: use un puerto no restringido para la comunicaciĆ³n (6)

Al consultar servidores ntp con el comando ntpdate , puedo usar el argumento -u para hacer que el puerto de origen sea un puerto no restringido (puerto 1024 y superior).

Con ntpd, que debe ejecutarse en segundo plano, parece que no puedo encontrar la manera de activar esta opción. Entonces, el puerto de origen siempre es 123. Está jugando horriblemente con mi configuración de firewall.

¿Hay una opción de configuración en ntp.conf para hacer que use un puerto fuente aleatorio?


Puede usar NAT de origen en el host que ejecuta ntpd para reemplazar el puerto de origen 123 con un número de puerto superior a 1024.


He tenido este problema antes y no he podido encontrar una solución. Terminé simplemente agregando una entrada a crontab que ejecuta ntpdate una vez por hora. Eso da una resolución lo suficientemente buena para todo lo que hago, ya que mi reloj nunca se desplaza más de 1 segundo por hora.


No parece que esto sea posible ... consulte la página de solución de problemas de ntp :

Si va a ejecutar ntpd, debe reparar su red / cortafuegos / NAT para que ntpd pueda tener acceso completo sin restricciones al puerto UDP 123 en ambas direcciones.

Si esto no es posible, es posible que deba ejecutar ntpd en el propio firewall, de modo que pueda tener acceso completo sin restricciones al puerto UDP 123 en ambas direcciones, y luego hacer que sirva tiempo a sus clientes internos.

Si eso no es posible, su única otra opción puede ser comprar el hardware necesario para conectarse a una o más de sus propias computadoras y ejecutar su propio servidor de tiempo Stratum 1 o comprar un servidor de tiempo Stratum 1 preempaquetado.


Logré resolver esto reemplazando el NTPD oficial con OpenNTPD. Mientras que el NTPD oficial se fija en el puerto UDP 123, OpenNTPD usa puertos no privilegiados.



Como @Andy_Whitfield escribió, ntpd no puede hacer esto. Pero hay alternativas como OpenNTPD y Chrony . AFAIK, Chrony también es utilizado por Android.

En mi configuración, uso chrony. Utiliza un puerto sin privilegios para preguntar a servidores remotos. Esta técnica tiene muchas más posibilidades de pasar un NAT. Es el mismo mecanismo, por cierto, que también usa ntpdate -q para consultar el servidor, pero solo cuando se lo llama como usuario sin privilegios.

Creo que el principal problema por el que a veces no funciona es que muchos enrutadores se han implementado NTP para configurar su reloj interno. En estos dispositivos, el puerto está en uso y, por lo tanto, no puede ser NATed. Esto incluso podría ser el caso si el dispositivo no responde a las consultas NTP.