Skip to main content

Instalar Chrony en Debian

Existen dos sistemas para mantener nuestros sistemas Debian correctamente sincronizados, por un lado tenemos ntp y como mejora al ntp también está chrony.

Al igual que ntp, chrony permite sincronizar fuentes de referencias externas para mantener la hora de los servidores, pero ambos tienen algunas diferencias.

Chrony permite sincronizar con servidores horarios externos y a la vez servir de fuente de hora para otros servidores de nuestra red. En el caso de ntp es sólo cliente y hay que instalar ntpd para que haga de servidor de hora.

Además chrony responde de forma más rápida y la sincronización tarda mucho menos, por lo que es ideal sobre todo para máquinas virtuales, que se pueden encender y apagar más a menudo.

Instalar chrony

Para instalar chrony ejecutaremos como siempre un simple comando, este instalará por si solo los dos sistemas (Chronyc y Chronyd) es decir el cliente y el demonio.

apt install chrony

Una vez instalado, lo habilitaremos y lo ejecutaremos.

systemctl enable chrony
systemctl start chrony

Nota: antes de activar chrony, hay que deshabilitar y parar el servicio ntp y el ntpd en caso de que estuvieran instalados y habilitados

Para comprobar ejecutaremos

chronyc tracking

Nos dará una salida parecida a esta

# chronyc tracking
Reference ID    : A29FC801 (time.cloudflare.com)
Stratum         : 4
Ref time (UTC)  : Sun Oct 08 09:50:10 2023
System time     : 0.000003285 seconds slow of NTP time
Last offset     : -0.000056454 seconds
RMS offset      : 0.000053328 seconds
Frequency       : 32.070 ppm slow
Residual freq   : -0.001 ppm
Skew            : 0.021 ppm
Root delay      : 0.030552367 seconds
Root dispersion : 0.001204389 seconds
Update interval : 1025.7 seconds
Leap status     : Normal

En esto podemos ver lo siguientes valores destacados:

Reference ID: Indica el ID de referencia y el nombre con el cual se sincroniza actualmente el equipo.

Stratum: número de saltos hacia un equipo usando el RefrenceID anterior.

Ref time (UTC): hora UTC en el cual se realizó la última medición de la fuente de referencia.

System Time: retraso del reloj del sistema desde el servidor sincronizado.

Last Offset: desplazamiento de la última actualización del reloj NTP.

RMS Offset: promedio a largo plazo del valor de compensación de tiempo.

Frequency: velocidad a la cual el reloj del sistema (el RTC) sería erróneo en caso de que chronyd no lo ajuste. las unidades van reflejadas en ppm (partes por millón).

Update interval: intervalos de sincronización en segundos.

Mostar fuentes de chrony

Usando el comando chronyc sources, podemos ver los servidores contra los que se sincroniza

chronyc sources

Ejemplo

root@eduardo:~# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* time.cloudflare.com           3  10   377   455   -308us[ -364us] +/-   22ms
^- i2t15.i2t.ehu.eus             1  10   377   144  -1000us[-1000us] +/-  506ms
^+ cf393dbc-c70f-489d-a6e6->     2  10   377   969   +164us[ +110us] +/-   45ms
^- 185.90.148.209                2  10   357   487  +5402us[+5346us] +/-   64ms

Fichero de configuración de chrony

El fichero de configuración de chrony está en la carpeta /etc/chrony/chrony.conf como podemos ver en la siguiente imagen

Chrony_01.png

En este fichero podemos configurar parámetros como por ejemplo el servidor o servidores (pool) que vamos a usar como referencia, los intervalos de sincronización, etc.

En este ejemplo, vemos que se usa el pool de debian. Si tenemos nuestros servidores en la red de Neodigit o de Tecnocrática, podemos usar ntp.neodigit.net como referencia.

Editamos el fichero, agregamos la línea server ntp.neodigit.net y reiniciamos chrony

# Include configuration files found in /etc/chrony/conf.d.
confdir /etc/chrony/conf.d

server ntp.neodigit.net
# Use Debian vendor zone.
pool 2.debian.pool.ntp.org iburst

Ahora comprobamos

root@eduardo:~# systemctl restart chrony
root@eduardo:~# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^? res2.mad1.tecnocratica.n>     2   6     1     3   -509us[ -509us] +/-   34ms
^? ntp01.pingless.com            2   6     3     1   -614us[ -614us] +/-   18ms
^? cf393dbc-c70f-489d-a6e6->     2   6     3     2   +211us[ +211us] +/-   43ms
^? i2t15.i2t.ehu.eus             1   6     3     2  -1023us[-1023us] +/-  506ms
root@eduardo:~# chronyc tracking
Reference ID    : B2D7E418 (ntp01.pingless.com)
Stratum         : 3
Ref time (UTC)  : Sun Oct 08 10:08:08 2023
System time     : 0.000000205 seconds fast of NTP time
Last offset     : -0.000328478 seconds
RMS offset      : 0.000328478 seconds
Frequency       : 32.077 ppm slow
Residual freq   : -22.917 ppm
Skew            : 0.024 ppm
Root delay      : 0.034075394 seconds
Root dispersion : 0.000739151 seconds
Update interval : 1.5 seconds
Leap status     : Normal