Administrar NTP en Linux con systemd utilizando timesyncd
No hace mucho os estuve hablando en uno de mis post acerca de cómo es posible configurar la fecha y hora mediante NTP en sistemas basados en Debian (por tanto aplica también a Ubuntu y derivados). En el mismo tutorial os hablaba además de otra utilidad del terminal de Linux denominada «date», que también permite configurar la fecha/hora manualmente.
Desde entonces veo que el artículo ha tenido buena acogida y también, desgraciadamente, que no todo el mundo ha conseguido configurar el NTP (Network Time Protocol) correctamente. Incluso yo mismo he tenido problemas en un equipo concreto, en el que por alguna clase de conjuro me ha sido del todo imposible (un Raspbian).
Como en este blog se trata de dar soluciones y procuro dar alternativas -siempre hay más de una forma de hacer lo mismo en el mundo de los sysadmin- voy a compartir con vosotros un método alternativo que, sí, me ha permitido de paso sincronizar el protocolo NTP satisfactoriamente en dicho sistema rebelde.
Configurar NTP con timesyncd en sistemas Linux con systemd
Acerca de systemd
Systemd es una de las piezas claves de cualquier distribución basada en Linux que podamos utilizar en la actualidad (o de casi cualquiera). Sucesor de initd, forma parte del esqueleto más básico e importante sobre el que se asienta Linux, siendo responsable entre otras cosas de gestionar el inicio de servicios durante el arranque.
En un sistema basado en sistemd, lo cierto es que ya no es realmente necesario utilizar el demonio ntpd. La utilidad systemd-timesyncd puede hacer el trabajo de sincronización correctamente, si lo que buscamos es simplemente configurar la fecha y hora en Linux de forma correcta.
Prerequisitos
Lo único que debemos tener en cuenta es lo siguiente:
- Nuestro sistema operativo debe estar basado en systemd (actualmente la práctica totalidad)
- systemd-timesyncd entrará en conflicto con el demonio ntpd si este está previamente configurado y activo
Para resolver el problema del posible conflicto, antes de continuar lanzaremos el siguiente comando:
apt purge ntp
Básicamente, estamos retirando el servicio del sistema. Veremos algo similar a esto.
Habilitar sincronización mediante NTP
Una vez hemos retirado el paquete ntp del sistema, procederemos a activar el soporte NTP mediante timesyncd.
Lo primero es encontrar el server pool más cercano a nuestra zona, algo que haremos en pool.ntp.org. Si estamos en Europa, estaríamos hablando de alguno de los siguientes:
server 0.europe.pool.ntp.org server 1.europe.pool.ntp.org server 2.europe.pool.ntp.org server 3.europe.pool.ntp.org
Escogeremos uno (es suficiente) de los pool y lo colocaremos en /etc/systemd/timesyncd.conf. Es decir:
sudo nano /etc/systemd/timesyncd.conf
El texto a colocar, en este caso, es el siguiente:
[Time] NTP=ca.pool.ntp.org
Así quedaría nuestro archivo.
Ahora reiniciaremos el demonio de timesyncd, para que coja los cambios del fichero de configuración:
systemctl restart systemd-timesyncd.service
En algunos sistemas podría no ser suficiente con esto. Pasaremos a verificar que la sincronización de fecha y hora ha sucedido con éxito.
timedatectl status
Nos fijaremos en estos valores:
- NTP enabled: no
- NTP synchronized: yes
En la anterior captura vemos que el valor «ntp enabled» está en no.
No sería estrictamente necesario habilitar ntp en este caso (he verificado la sincronización con el ajuste apagado) pero en caso de experimentar algún problema, lo activaremos:
timedatectl set-ntp true
Ahora, al volver a lanzar el comando anterior, recibiremos la siguiente información.
Como se puede ver, hemos podido habilitar NTP. Todo debería funcionar perfectamente en adelante. Con esto llegamos al final del tutorial de hoy sobre cómo configurar NTP en sistemas Linux gracias a timesyncd. Si lo pruebas, comparte tus resultados, aquí estoy para ayudarte si tienes problemas. Recuerda compartir si te parece útil 😉
Categories
deweloper View All
Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.
Buenas, he seguido la guiá pero al ejecutar timedatectl status siempre me informaba
timedatectl ntp synchronized no
para solucionar esto tuve que instalar el paquete ntp.
Pero te ha funcionado?
timedatectl ntp synchronized no
tengo el mismo problema! porf avor tu ayuda
Muy buena guía, gracias.
Lo único es que al desinstalar ntp con
apt purge ntp
no debió de poder instalar systemd-timesyncd.
dpkg: ntp: problemas de dependencias, pero se desinstalará de todas formas tal y como se solicitó:
systemd depende de systemd-timesyncd | time-daemon; sin embargo:
El paquete `systemd-timesyncd’ no está instalado.
El paquete `time-daemon’ no está instalado.
El paquete `systemd-timesyncd’ que provee time-daemon no está instalado.
El paquete `ntp’ provee `time-daemon’ pero va a ser desinstalado.
Simplemente con apt install systemd-timesyncd se resolvieron los problemas de dependencias y el resto como la seda.
Gracias por aclararlo, muy útil!