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:
# Se trata de un comando que puede que no tengamos instalado, si es así, su instalación es la típica
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:
#en Debian, Ubuntu y derivadas
apt install ntp
#en RHEL, Centos, Fedora
yum install ntp
#en OpenSUSE y SuSE
zypper install ntp
#en Arch y derivadas
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:
#Hasta la versión 6
chkconfig ntp on
#A partir de la 7, con systemd
systemctl enable ntp
Sí ntpd, es el demonio (daemon, en inglés), que utiliza NTP para funcionar.
Si queremos parar o reiniciar el servicio:
#Sin systemd
service ntp restart # para reiniciar
service ntp stop # para pararlo
service ntp reload # para recargarlo
service ntp start # para encenderlo
#con systemd
systemctl restart ntp # para reiniciar
systemctl stop ntp # para pararlo
systemctl reload ntp # para recargarlo
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:
# Puedo que no lo tengamos instalado, si es así, ídem de los pasos anteriores con éste comando.
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
Interesante
Gracias
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.
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.
Hola!
Para poder sincronizar la hora, el comando es:
ntpdate -i hora.rediris.es
El servidor ‘hora.rediris.es’, es el servidor del ministerio de ciencia español.
Saludos
Muchas gracias David, tenia puesta la de roa, el tema es que cuando ejecuto ntpstat me dice unsynchronised por eso preguntaba.
Un saludo.
Hola Javi,
Me acabo de dar cuenta que te he puesto mal el comando, tendrías que poner ‘ntpdate -u hora.rediris.es’, o el servidor que tu utilices. En principio el router que tengas en casa de la compañía de teléfonos, también te puede servir de servidor de hora.
Saludos
Nada no te preocupes, me di cuenta y lo hice bien 🙂