Skip to content

Administrar NTP en Linux con systemd utilizando timesyncd

Administrar NTP en Linux utilizando systemd-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.

timesyncd Linux (systemd)

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.

timesyncd Linux (systemd) 2

Ahora reiniciaremos el demonio de timesyncd, para que coja los cambios del fichero de configuración:

systemctl restart systemd-timesyncd.service

timesyncd Linux (systemd) 3

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

timesyncd Linux (systemd) 4

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.

timesyncd Linux (systemd) 5

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 😉

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.

5 thoughts on “Administrar NTP en Linux con systemd utilizando timesyncd Leave a comment

  1. 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.

  2. 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.

Deja un comentario