Cómo verificar que NTP funciona o no (Comprobar el estado de NTP)

  • por

He configurado un cliente y/o servidor NTP (Network Time Protocol) para gestionar el reloj del sistema a través de una red. Pero, ¿cómo puedo verificar que está funcionando correctamente? ¿Cómo compruebo el estado del NTP?
Mantener la hora correcta es esencial en un sistema servidor y cliente. Puedes utilizar cualquiera de los siguientes programas para verificar que la configuración del cliente NTP funciona correctamente en sistemas Linux o tipo Unix.

¿Cómo comprobar que NTP funciona?

  1. ntpq – programa estándar de consulta NTP
  2. ntpstat – muestra el tiempo de la red estado de sincronización
  3. timedatectl – muestra o establece información sobre ntp usando systemd
Requisitos

Detalles del tutorial
Nivel de dificultad Fácil
Privilegios de root No
Ninguno
Tiempo est. tiempo de lectura 2m

Veamos todos los comandos y ejemplos en detalle

Ocasionalmente puede que no encuentres las siguientes herramientas instaladas por defecto en tu distro Linux/Unix. Si obtienes un error de «comando no encontrado». Busque esas herramientas e instálelas.

Verifique si NTP funciona o no con el comando ntpstat

El comando ntpstat informará del estado de sincronización del demonio NTP que se ejecuta en la máquina local. Si se comprueba que el sistema local está sincronizado con una fuente de tiempo de referencia, ntpstat informará de la precisión horaria aproximada.

estado de salida del comando ntpstat

Puede utilizar el estado de salida (valores de retorno) para verificar sus operaciones desde un script de shell o la propia línea de comandos:

  • Si el estado de salida es 0 – El reloj está sincronizado.
  • estado de salida 1 – El reloj no está sincronizado.
  • Estado de salida 2 – Si el estado del reloj es indeterminado, por ejemplo si ntpd no es contactable.
  • Escribe el comando de la siguiente manera:
    $ ntpstat
    Salidas de ejemplo:

    synchronised to NTP server (149.20.54.20) at stratum 3 time correct to within 42 ms polling server every 1024 s

    Usa el comando echo para mostrar el estado de salida del cliente ntp:
    $ echo $?
    Salidas de ejemplo:

    0

    Comprobar el estado de NTP con el comando ntpq

    El programa de utilidad ntpq se utiliza para supervisar las operaciones del demonio NTP ntpd y determinar su rendimiento. El programa puede ser ejecutado en modo interactivo o controlado mediante argumentos de línea de comandos. Escriba el siguiente comando en su sistema basado en Linux o Unix:
    $ ntpq -pn
    O
    $ ntpq -p
    Salidas de ejemplo:

     remote refid st t when poll reach delay offset jitter==============================================================================*dione.cbane.org 204.123.2.5 2 u 509 1024 377 51.661 -3.343 0.279+ns1.your-site.c 132.236.56.252 3 u 899 1024 377 48.395 2.047 1.006+ntp.yoinks.net 129.7.1.66 2 u 930 1024 377 0.693 1.035 0.241 LOCAL(0) .LOCL. 10 l 45 64 377 0.000 0.000 0.001

    * la fuente a la que se sincroniza (syspeer). Lo anterior es un ejemplo de cliente ntp que funciona. Donde,

    1. -p : Imprime una lista de los peers conocidos por el servidor así como un resumen de su estado.
    2. -n : Imprime todas las direcciones de host en formato numérico de cuadrado de puntos en lugar de convertirlas a los nombres de host canónicos.

    Otra fuente fiable es ejecutar el siguiente comando:
    $ ntpq -c rv
    Busca el código de salto de la siguiente manera:

    Linux Verifica que NTP funciona o no
    Así que el código de salto 0 (leap_none) significa un estado normal de sincronización. Y el código de salto 3 (leap_alarm) significa que NTP nunca se ha sincronizado. Aquí hay un ejemplo de salidas:
    ¿Cómo comprobar que NTP funciona?

    Una nota sobre el comando timedatectl

    Si estás usando un sistema basado en systemd, ejecuta el siguiente comando para comprobar el estado del servicio
    # timedatectl status
    Salidas de ejemplo:

    ¿Funciona mi NTP (systemd-timesyncd)?

    ¿Funciona mi NTP (systemd-timesyncd)?

    configuración de systemd-timesyncd

    Si NTP enabled está configurado como No. Prueba a configurarlo editando el archivo /etc/systemd/timesyncd.conf de la siguiente manera:
    # vi /etc/systemd/timesyncd.conf
    Apunta/edita lo siguiente, es decir, añade servidores de tiempo o cambia los proporcionados, descomenta la línea correspondiente y enumera su nombre de host o IP separados por un espacio (por defecto de mi servidor Debian 8.x):

    Servers=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org

    Guarda y cierra el archivo. Por último, inicia y habilita, ejecuta:
    # timedatectl set-ntp true
    # timedatectl status

    Salidas de la muestra:

     Local time: Mon 2019-09-30 18:25:38 IST Universal time: Mon 2019-09-30 12:55:38 UTC RTC time: Mon 2019-09-30 12:55:38 Time zone: Asia/Kolkata (IST, +0530) System clock synchronized: yessystemd-timesyncd.service active: yes RTC in local TZ: no

    Lo anterior es una forma sencilla de verificar que NTP funciona en Linux.

    Conclusión

    Has aprendido a verificar que tu configuración NTP funciona correctamente. Ahora ya sabes cómo comprobar el estado de tu fecha y hora, sincronizada con los servidores de tiempo upstream. Para más información consulta los docs de ntpd aquí.

    🐧 Recibe los últimos tutoriales sobre Linux, Open Source & DevOps a través del feed RSS o del boletín semanal por correo electrónico.
    🐧 11 comentarios hasta ahora…. añadir uno ↓

    .

    Categoría Lista de comandos Unix y Linux
    Gestión de archivos cat
    Firewall Alpine Awall – CentOS 8 – OpenSUSE – RHEL 8 – Ubuntu 16.04 – Ubuntu 18.04 – Ubuntu 20.04
    Utilidades de red dig – host – ip – nmap
    OpenVPN CentOS 7 – CentOS 8 – Debian 10 – Debian 8/9 – Ubuntu 18.04 – Ubuntu 20.04
    Administrador de paquetes apk – apt
    Gestión de procesos bg – chroot – cron – disown – fg – jobs – killall – kill – pidof – pstree – pwdx – time
    Búsqueda grep – whereis – which
    Información del usuario grupos – id – lastcomm – last – lid/libuser-lid – logname – members – users – whoami – who – w
    WireGuard VPN Alpine – CentOS 8 – Debian 10 – Firewall – Ubuntu 20.04

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *