Sincronizar hora y fecha con NTP en GNU Linux

Hoy otro artículo técnico, el tema de hoy es sobre NTP. El protocolo de hora y fecha, además de servidor de red, que permite a nuestra computadora ajustar su reloj, en función del valor mantenido por otro reloj, afincado en otro servidor. ¿Vaya lío? ¿No? En resumen, que hará que siempre tengamos la hora y la fecha de nuestro equipo siempre correcta.

NTP, configuración y uso

En el artículo de hoy veremos la instalación del servicio y su configuración en un equipo con GNU Linux. Por norma general en las empresas se suele instalar un servidor que ofrece la hora y la fecha al resto de la red,  eso lo veremos en otro artículo, más adelante.

Lo cierto que la instalación y configuración en un cliente no tiene mucho misterio. De hecho el servicio cliente se encuentra instalado ya en muchas distribuciones. Si queremos que el servicio apunte a un servidor en concreto en la red, debemos ir a la terminal de comandos, y escribir:

  1. # Se trata de un comando que puede que no tengamos instalado, si es así, su instalación es la típica
  2. ntpdate -u hora.roa.es

Lo que hemos hecho es decir a ntp que utilice el servidor del Real Instituto y Observatorio de la Armada, para sincronizar la hora y la fecha. Si no tenemos el servicio instalado, sólo tenemos que escribir:

  1. #en Debian, Ubuntu y derivadas
  2. apt install ntp
  3. #en RHEL, Centos, Fedora
  4. yum install ntp
  5. #en OpenSUSE y SuSE
  6. zypper install ntp
  7. #en Arch y derivadas
  8. pacman -Sy ntp

En el fichero /etc/ntp.conf, se encuentra la lista de servidores de hora que utiliza el sistema, si queremos la podemos modificar. En Debian, Ubuntu y resto de colegas, no hace falta que añadamos el servicio al arranque en cambio en sistemas como RHEL, Centos o Fedora:

  1. #Hasta la versión 6
  2. chkconfig ntp on
  3. #A partir de la 7, con systemd
  4. systemctl enable ntp

ntpd, es el demonio (daemon, en inglés), que utiliza NTP para funcionar.

Si queremos parar o reiniciar el servicio:

  1. #Sin systemd
  2. service ntp restart # para reiniciar
  3. service ntp stop # para pararlo
  4. service ntp reload # para recargarlo
  5. service ntp start # para encenderlo
  6. #con systemd
  7. systemctl restart ntp # para reiniciar
  8. systemctl stop ntp # para pararlo
  9. systemctl reload ntp # para recargarlo
  10. systemctl start ntp # para encenderlo

También tenemos a nuestra disposición varios comandos intereresantes, por ejemplo, si queremos comprobar su estado y que nos muestre un reporte de actividad:

  1. # Puedo que no lo tengamos instalado, si es así, ídem de los pasos anteriores con éste comando.
  2. ntpstat

Nos dirá si el servicio está sincronizado o no.

Espero que el artículo os haya parecido interesante. Nos leemos en la próxima!

La fuente de la imagen de portada, cortesía de Flickr

8 Respuestas

  1. David dice:

    Interesante

  2. Javi Felices dice:

    Buenas, y en primer lugar gracias, ya miraré el blog con más calma, por lo pronto suscrito quedo.

    En el caso que con ntpstat nos diga que no está sincronizado, qué habría que hacer?

    Un saludo y gracias.

    • Javi Felices dice:

      Si ejecuto ntpstat me sale «unsynchronised
      polling server every 8 s»

      En cambio con timedatectl status me sale
      «Local time: dom 2017-08-27 13:47:25 CEST
      Universal time: dom 2017-08-27 11:47:25 UTC
      RTC time: lun 2017-08-28 00:15:46
      Time zone: Europe/Madrid (CEST, +0200)
      Network time on: yes
      NTP synchronized: yes
      RTC in local TZ: no»

      Ejecuto status a ntp

      root@debian-soporte:/usr/src/linux-4.12.9# systemctl status ntp
      ● ntp.service – LSB: Start NTP daemon
      Loaded: loaded (/etc/init.d/ntp; generated; vendor preset: enabled)
      Active: active (running) since Sun 2017-08-27 13:46:36 CEST; 2min 53s ago
      Docs: man:systemd-sysv-generator(8)
      Process: 10305 ExecStop=/etc/init.d/ntp stop (code=exited, status=0/SUCCESS)
      Process: 10320 ExecStart=/etc/init.d/ntp start (code=exited, status=0/SUCCESS)
      Tasks: 2 (limit: 19660)
      CGroup: /system.slice/ntp.service
      └─10330 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 107:111

      ago 27 13:46:36 debian-soporte ntp[10320]: Starting NTP server: ntpd.
      ago 27 13:46:36 debian-soporte systemd[1]: Started LSB: Start NTP daemon.
      ago 27 13:46:36 debian-soporte ntpd[10330]: proto: precision = 0.100 usec (-23)
      ago 27 13:46:36 debian-soporte ntpd[10330]: Listen and drop on 0 v6wildcard [::]:123
      ago 27 13:46:36 debian-soporte ntpd[10330]: Listen and drop on 1 v4wildcard 0.0.0.0:123
      ago 27 13:46:36 debian-soporte ntpd[10330]: Listen normally on 2 lo 127.0.0.1:123
      ago 27 13:46:36 debian-soporte ntpd[10330]: Listen normally on 3 eth0 192.168.1.122:123
      ago 27 13:46:36 debian-soporte ntpd[10330]: Listen normally on 4 lo [::1]:123
      ago 27 13:46:36 debian-soporte ntpd[10330]: Listen normally on 5 eth0 [fe80::215:5dff:fe38:107%2]:12ago 27 13:46:36 debian-soporte ntpd[10330]: Listening on routing socket on fd #22 for interface updalines 1-20/20

      Un saludo y gracias.

Deja un comentario

This site uses Akismet to reduce spam. Learn how your comment data is processed.