La hora en Linux, y en cualquier sistema operativo es esencial para que muchos procesos internos del sistema y de las aplicaciones puedan ser usados de manera correcta, la causa es que alguna mala configuración a nivel de hora puede crear conflictos de sincronización que a la final afectara operaciones como respaldos de datos, descargas de datos, actualizaciones y más.
NTP (Network Time Protocol – Protocolo de Tiempo de Red) es un protocolo disponible para usar los servicios de sincronización de tiempo a través de miles de servidores a nivel mundial para que las diversas zonas horarias puedan estar en el tiempo real, a tener en cuenta que los clientes y servidores NTP son sincronizados tomando como base la escala de tiempo del Tiempo Universal Coordinado (UTC) y de allí la importancia de activar y usar esta sincronización en Linux.
Solvetic te explicará cómo podemos sincronizar la hora en Linux hacia un servidor NTP de manera simple.
Cómo sincronizar hora Linux con servidor NTP
Lo primero será validar si nuestro sistema tiene la sincronización activa, abrimos la terminal y validamos el estado actual del tiempo:
timedatectl
Encontramos detalles como:
- Hora local, universal y RTC
- Zona horaria actual del sistema
- Estado de la sincronización del sistema de reloj
- Estado del servicio NTP
Si es necesario activar la sincronización con NTP ejecutamos lo siguiente:
sudo timedatectl set-ntp true
Es posible acceder a los eventos de NTP ejecutando lo siguiente:
sudo cat /var/log/syslog | grep ntp
Hemos aplicado el filtro usando grep para que se muestren los resultados de ntp:
Ahora vamos a instalar el cliente NTP:
sudo apt install ntpdate
ntpdate nos da la posibilidad de establecer la fecha y la hora a través de NTP y esto se logra realizando un análisis de los servidores NTP que se pueden ingresar como argumentos del servidor y debe ser ejecutado como root.
El comando ntpdate se puede ejecutar de forma manual o usando un script.
Ahora vamos a instalar NTP como “demonio” para el trabajo local:
sudo apt install ntp
Confirmamos el proceso:
Si usamos Fedora debemos ejecutar:
sudo dnf install ntp
- En Arch Linux:
sudo pacman -S ntp
- Para OpenSUSE ejecutamos:
sudo zypper install ntp
Habilitamos el servicio NTP:
sudo systemctl enable ntp
Iniciamos el servicio para que cargue junto al sistema:
sudo systemctl start ntp
Comprobamos si el equipo se comunica con un servidor de tiempo:
ntpstat
El comando ntpstat nos muestra el estado de sincronización de la hora de la red, allí encontramos con cual servidor se ha sincronizado (78.112.15.178) sobre que nivel (3), cuanto tardo la sincronización (109 ms) y cada cuanto se ejecuta el proceso (64 s).
Ahora usaremos ntpq para listar los servidores de tiempo activos:
ntpq -p
La utilidad ntpq nos permite monitorear las operaciones ntpd del daemon NTP y así saber el rendimiento de este, puede ser ejecutado en modo interactivo o bien usando argumentos de línea de comandos.
ntpq hace uso de paquetes NTP en modo 6 con el fin de establecer contacto con el servidor NTP y gracias a ello es ideal para sincronizarse con cualquier servidor compatible en la red que esté disponible.
Algunos parámetros disponibles con ntpq son:
- -4: forza la resolución de DNS a usar nombres IPv4
- -6: forza la resolución de para hacer uso de nombres IPv6
- -c: es un comando de formato interactivo y puede ser añadido a la lista de comandos ejecutados en los hosts indicados
- -d: activa el modo de depuración
- -i. obliga a ntpq para que funcione en modo interactivo
- -n: despliega todas las direcciones de host en formato numérico de cuatro puntos
- -p: imprime una lista de los pares conocidos por el servidor y un resumen de los mismos
Podemos ejecutar "ntpq" para acceder a la consola y luego ingresar "?" para ver las diversas opciones:
Ahora haremos uso de Chrony, Chrony es una implementación del protocolo NTP con la cual es posible:
- sincronizar el reloj del sistema usando una entrada de tiempo manual
- sincronizar el reloj del sistema usando los servidores NTP
chrony está compuesto por chronyd, este un demonio que se ejecuta en el espacio del usuario y también se dispone de chronyc el cual es un programa de línea de comandos para supervisar el rendimiento de chronyd y ajustar parámetros si es necesario, instalamos el demonio Chrony:
sudo apt install chrony
Confirma el proceso:
Para validar los servidores de tiempo ejecutamos. Allí se despliegan datos precisos de los servidores a los cuales se accede para la sincronización.
chronyc sources
Solvetic te ha explicado cómo sincronizar la hora en Linux con NTP de manera funcional para que la pongas en práctica.