1. Importancia de NTP en Ubuntu
Qué es NTP?
NTP (Network Time Protocol) es un protocolo diseñado para sincronizar la hora de los sistemas informáticos con precisión a través de una red. Mantener una hora del sistema exacta es esencial para la consistencia de los registros, el procesamiento de transacciones y la fiabilidad de la comunicación en red. Si el reloj del sistema se desvía, pueden producirse errores de red o inconsistencias de datos, lo que hace que la sincronización horaria sea crucial, especialmente en entornos de servidores.
En Ubuntu, se recomienda chrony porque proporciona una sincronización horaria precisa incluso en entornos de red inestables. Chrony también ofrece baja latencia y sincronización rápida, lo que lo hace adecuado tanto para entornos de servidor como de cliente.
2. Cómo configurar NTP
Instalación y configuración de Chrony
Chrony es el cliente NTP predeterminado en Ubuntu 18.04 y versiones posteriores. Utilice los siguientes pasos para instalar Chrony y configurar la sincronización horaria mediante servidores NTP.
Pasos de instalación
sudo apt update
sudo apt install chrony
A continuación, inicie el servicio Chrony y habilítelo para que se inicie automáticamente.
sudo systemctl start chrony
sudo systemctl enable chrony
El archivo de configuración se encuentra en /etc/chrony/chrony.conf. Si desea usar servidores NTP ubicados en Japón, configúrelos de la siguiente manera:
server ntp.nict.jp iburst
server 0.jp.pool.ntp.org iburst
server 1.jp.pool.ntp.org iburst
server 2.jp.pool.ntp.org iburst
La opción iburst acelera la sincronización inicial al conectarse a un servidor NTP.
3. Optimización y selección de servidores NTP
Uso del proyecto NTP Pool
El proyecto NTP Pool ofrece servidores NTP optimizados por región, obtenidos de todo el mundo. Al configurar varios servidores NTP, aumenta la fiabilidad, garantizando que si un servidor deja de estar disponible, otros continúen la sincronización horaria sin interrupciones.
El ejemplo a continuación muestra una configuración que utiliza servidores ubicados en Japón:
server ntp.nict.jp iburst
server 0.jp.pool.ntp.org iburst
server 1.jp.pool.ntp.org iburst
server 2.jp.pool.ntp.org iburst
4. Configuración de la zona horaria
Uso del comando timedatectl
De forma predeterminada, Ubuntu usa UTC como zona horaria del sistema. Puede cambiarla a la Hora Estándar de Japón (JST) con el siguiente comando:
sudo timedatectl set-timezone Asia/Tokyo
Después de realizar el cambio, verifique la configuración actual de la zona horaria con:
timedatectl
5. Solución de problemas
Cuando NTP no sincroniza
Verificar el firewall
NTP utiliza el puerto UDP 123, y la sincronización puede fallar si el firewall bloquea este puerto. Abra el puerto 123 con el siguiente comando:
sudo ufw allow 123/udp
Comprobación de falsos marcadores
Utilice el comando ntpq -p para verificar si los servidores NTP están funcionando correctamente. Los servidores que proporcionan una hora inexacta se marcan con el símbolo x. Si los detecta, elimínelos o reemplácelos en su configuración.
Error de Stratum 16
Si el servidor NTP no puede sincronizarse con un servidor ascendente, se produce un error de Stratum 16. Esto indica un problema de conectividad o de configuración. Verifique la configuración de su red y vuelva a configurar sus servidores NTP para asegurar la sincronización con fuentes ascendentes fiables.
Sincronización manual de la hora
Para sincronizar la hora manualmente usando Chrony, ejecute el siguiente comando:
sudo ntpdate ntp.nict.jp
También puede revisar los registros de Chrony para diagnosticar problemas de sincronización:
sudo journalctl -u chrony
6. Optimización de NTP en entornos de alta carga
Ajustando minpoll y maxpoll
En entornos que requieren una sincronización horaria de alta precisión, ajustar los intervalos de sondeo de NTP permite actualizaciones más frecuentes y ayuda a minimizar la deriva horaria. El ejemplo de configuración a continuación incrementa la frecuencia de sincronización:
server ntp.nict.jp iburst minpoll 4 maxpoll 10
Gestionando NTP con Juju
En entornos de nube a gran escala, Juju puede automatizar el despliegue del servicio NTP. Juju monitoriza la carga de los hosts y selecciona automáticamente el host óptimo como servidor NTP. Despliegue NTP mediante Juju de la siguiente manera:
juju deploy cs:ntp ntp
juju config ntp auto_peers=true
Esto permite una gestión automatizada de NTP, distribuyendo la carga de manera eficaz y garantizando una sincronización horaria eficiente.
7. Mejora de la seguridad
Control de acceso para servidores NTP
Para mejorar la seguridad, puede restringir el acceso al servidor NTP a direcciones IP específicas. Añada reglas de control de acceso a /etc/chrony/chrony.conf como se muestra a continuación para permitir solicitudes solo desde redes aprobadas:
allow 192.168.1.0/24
Esto evita solicitudes NTP no autorizadas desde hosts externos y refuerza la seguridad de la red interna.

