2008-10-24 13 views
11

Cuando se consultan los servidores NTP con el comando ntpdate , puedo usar el argumento -u para hacer el puerto de origen un puerto sin restricciones (puerto 1024 y superiores).NTPD: Usar un puerto sin restricciones para la comunicación

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 utilice un puerto de origen aleatorio?

Respuesta

11

No suena mirar esto es posible ... ver el ntp troubleshooting page:

Si va a ejecutar ntpd, que debe arreglar su red/cortafuegos/NAT para que ntpd puede tener plena acceso irrestricto al puerto UDP 123 en ambas direcciones.

Si esto no es posible, puede necesitar ejecutar ntpd en el propio firewall, para 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 uno o más de sus propios equipos y ejecutar su propio servidor de tiempo Stratum 1 o comprar un servidor de tiempo Stratum 1 preempaquetado.

2

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.

6

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

+1

Lo siento, ¿cómo especificar qué puerto usar? No pude encontrarlo en el manual – Joril

+0

¿Cómo se puede controlar que openntpd se esté ejecutando correctamente? ntpd puede ser consultado para emitir un estado. una vez usado openntpd exactamente para este problema de prioport y me encontré con un ntp sordo-mudo que probablemente sea defectuoso. – michuelnik

1

Como escribió @Andy_Whitfield, ntpd no pueden 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 que también utiliza 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 tienen NTP implementado 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.

0

Puede utilizar NAT de origen en el servidor que ejecuta la ntpd para reemplazar el puerto 123 de origen con un número de puerto por encima de 1024.

Cuestiones relacionadas