Objetivo
Tenía anfitriones aislados localmente. Me gustaría que todos tuvieran el mismo tiempo. Uno asume el papel del servidor horario, otros se sincronizan con él como clientes.
Todas las máquinas tienen un tiempo de actividad esporádico. Rara vez reciben energía. De modo que podrían obtener una compensación significativa. Todo el conjunto de hosts debería sincronizarse minutos después de configurar manualmente la hora local del servidor.
Para confirmar la confiabilidad, probé la conexión de hosts ntp estableciendo excelentes ajustes manuales (varias horas) y midí qué tan rápido se sincronizaban los clientes.
ntpd - caso ntpd
Intenté usarntpdtanto para los clientes como para el servidor.ntpdToma mucho tiempo ajustar el reloj. Además, se niega a retroceder el tiempo un par de horas.
Si se pudiera arreglar, prefiero usarntpdcomo cliente. Así que estoy buscando opciones de configuración para indicarle a ntpd que está ansioso por aceptar actualizaciones del reloj de la red.
Pero si no hay manera de emplearntpd,ntpdateLa alternativa sigue siendo aceptable.
ntpd - caso ntpdate
ntpdateActualiza perfectamente el reloj sin dudarlo. Lo puse en una tarea cron y obtuve una solución aproximada pero funcional. Lamentablemente la primera impresión fue equivocada. Después de varias pruebas noté que elntpdateEl cliente comenzó a rechazar el servidor. Por algunas razones, el servidor decidió devolver el estrato 16. Lo puse explícitamente fudge 127.127.1.0 stratum 8
en elntp.confen el lado del servidor para evitar este comportamiento exacto. Perontpdate-v-del resultado muestra "estrato 16" transmitido desde el servidor.
Entonces veo dos maneras. O obligar antpdEl servidor devuelve el estrato 9 independientemente de la hora local, salta o fuerza elntpdatecliente acepte cualquier servidor, incluso si tiene estrato 16.
Intenté buscar en Google de cualquier manera pero no encontré nada. ¿Alguien podría sugerir opciones de configuración adecuadas?
Respuesta1
Utilice un ntpd
servidor único para todos. Todas las PC que se reinician todos los días pueden sincronizar sus relojes al inicio mediante ntpdate
un comando. Los relojes de otros servidores se pueden sincronizar mediante ntpd
el servicio porque ajusta la hora suavemente.
Para ntpd
uso del servidor de hora principal:
server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 2
driftfile /var/lib/ntp/ntp.drift
restrict default nomodify notrust
restrict 127.0.0.0/8
disable auth
logfile /var/log/ntp.log
Respuesta2
Mi principal sugerencia: no hagas esto. Intente cambiar sus requisitos o restricciones para que pueda tener un sistema siempre activo que pueda ser una fuente de tiempo, o para que sus sistemas no estén aislados y puedan obtener tiempo delgrupo NTP global, o ambos.
Hoy en día, puede obtener servidores NTP de bajo consumo con receptores GPS a un precio bastante económico. Si le gusta el bricolaje, BeagleBones y Raspberry Pis se pueden convertir en servidores NTP por menos de 100 dólares, o si quiere algo ya disponible, pruebe unLeoNTP.
Siguiente sugerencia: si ntpd
tarda mucho en actualizar el reloj, probablemente necesites verificar tu configuración:
- Asegúrese de estar utilizando la
-G
bandera de línea de comando;-g
es el valor predeterminado en algunas distribuciones de Linux, pero no dará grandes pasos hacia atrás. - Asegúrese de que todos sus servidores/grupos estén configurados con
iburst
. - Utilice
tinker step 0.5
ytinker panic 0
para maximizarntpd
la capacidad de arreglar grandes compensaciones. - Asegúrese de que se pueda escribir en su archivo de deriva
ntpd
y que se guarde correctamente cuando se cierre.
Tercera sugerencia (que preferiría a ntpdate
): probar chrony
: tiene soporte explícito para clientes conectados ocasionalmente (como computadoras portátiles que se suspenden regularmente). La chrony.conf(5)
página de manual tiene todos los detalles sobre esto. Si está utilizando una distribución que chrony
es la predeterminada (CentOS/Red Hat y Ubuntu después del lanzamiento de 18.04), esta probablemente sería mi segunda sugerencia.
Última sugerencia: si ntpdate
informa que un servidor es de estrato 16, significa que hay algún problema con ese servidor. Intente publicar la configuración del servidor y el resultado de ntpq -np
y ntpq -nc rv
para que podamos ayudar a diagnosticarlo.