Sincronizando la hora con NTP en Arch Linux

Reloj sincronizado con servidor NTP
3 min. Lectura
0 Vistas
0 Valoración

Actualización 05/2020: Se ha añadido systemd-timesyncd que ya sincroniza el reloj del sistema a través de la red. Este simple cliente NTP debería ser apropiado para la mayoría de instalaciones. De todas maneras, dejo el procedimiento que en su día utilicé.

Vamos a configurar un equipo como servidor y el resto de equipos como clientes, para ello vamos a utilizar NTP.

Tanto en el equipo servidor como en los equipos clientes, instalamos NTP:

sudo pacman -S ntp

Configurando NTP como servidor

Modificamos el fichero de configuración:

sudo nano /etc/ntp.conf

Y modificamos los servidores a los que nos vamos a conectar. Para elegirlos podemos consultar NTP Pool Project, y localizar la zona donde se encuentre nuestro país.

Sustituimos los servidores propuestos en el fichero y pegamos los que hemos seleccionado anteriormente:

# Associate to Arch's NTP pool
server 3.es.pool.ntp.org iburst
server 0.europe.pool.ntp.org iburst
server 2.europe.pool.ntp.org iburst

A continuación, verificamos las líneas de restricción que nos permiten que otros clientes consulten el servidor de tiempo:

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict -4 default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery

Solo permitiremos que nuestra red sea la que pueda sincronizar con el servidor NTP:

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

En caso de que el servidor se desconecte de Internet va a poder seguir proporcionando la hora a la red si incluimos el reloj local como backup:

server 127.127.1.0
fudge 127.127.1.0 stratum 10

Especificamos la ubicación de los parámetros del log NTP:

driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp.log

Ahora seleccionamos nuestra zona horaria:

sudo timedatectl set-timezone Europe/Madrid

Y comprobamos con:

sudo timedatectl status

Sincronizamos manualmente:

ntpd -qg

Y por último, añadimos el servicio al inicio y lo arrancamos:

sudo systemctl enable ntpd
sudo systemctl start ntpd

Configurando NTP para los clientes

Modificamos el archivo de configuración:

sudo nano /etc/ntp.conf

Añadimos la IP del equipo que realiza las funciones de servidor NTP y el resto de servidores:

# Associate to Arch's NTP pool
server 192.168.1.70 prefer
server 3.es.pool.ntp.org iburst
server 0.europe.pool.ntp.org iburst
server 2.europe.pool.ntp.org iburst

Y por último añadimos el servicio al inicio y lo arrancamos:

sudo systemctl enable ntpd
sudo systemctl start ntpd

Seleccionamos nuestra zona horaria:

sudo timedatectl set-timezone Europe/Madrid

Y activamos NTP:

sudo timedatectl set-ntp true

Comprobamos con:

ntpd -qg

Las columnas delay, offset y jitter deben mostrar una fluctuación distinta de cero. Los servidores ntpd que se estén sincronizando aparecerán con un asterisco como prefijo. Pueden pasar varios minutos antes de que ntpd seleccione un servidor para sincronizarse, prueba a comprobar pasados 17 minutos (1024 segundos).

sudo timedatectl status
 Local time: sáb 2017-08-26 07:20:38 UTC
 Universal time: sáb 2017-08-26 07:20:38 UTC
 RTC time: n/a
 Time zone: n/a (UTC, +0000)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

Alternativa: OpenNTPD

En lugar del anterior, podemos usar OpenNTPD, bastante más sencillo de configurar.

sudo pacman -S openntpd

Si estamos utilizando un cortafuegos, por ejemplo UFW, permitimos el tráfico:

sudo ufw allow 123/udp

Y modificamos el archivo ntpd.conf:

sudo nano /etc/ntpd.conf

Para el servidor:

server 0.europe.pool.ntp.org
server 1.europe.pool.ntp.org
server 2.europe.pool.ntp.org
server 3.europe.pool.ntp.org

listen on 127.0.0.1

Para los clientes:

server 192.168.1.70

Activamos y arrancamos:

sudo systemctl enable openntpd.service
sudo systemctl start openntpd.service

Seleccionamos nuestra zona horaria:

sudo timedatectl set-timezone Europe/Madrid

y comprobamos con:

sudo timedatectl status
               Local time: sáb 2020-05-02 16:30:29 CEST
           Universal time: sáb 2020-05-02 14:30:29 UTC
                 RTC time: n/a
                Time zone: Europe/Madrid (CEST, +0200)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

¿Te ha sido útil?

Ayúdame a mejorar con tu puntuación y comentarios.

0.0 (0 votos)
Jaume Ferré

Jaume Ferré

Soy un entusiasta de las nuevas tecnologías, apasionado por explorar su potencial innovador. Colecciono CDs en formato físico y disfruto creando mezclas musicales. Además, la fotografía es otra de mis pasiones, capturando momentos y expresiones con cada disparo. ¡Gracias por leerme!

💬 Comentarios

Los comentarios están gestionados por GitHub Discussions. Necesitas una cuenta de GitHub para participar. ¡Es gratis y rápido!