En este tutorial, discutiremos cómo instalar y configurar Chrony , un cliente y servidor NTP alternativo para sistemas tipo Unix. Chrony puede sincronizar el reloj del sistema más rápido con una mejor precisión de tiempo y puede ser particularmente útil para los sistemas que no están en línea todo el tiempo. Chrony es gratuito, de código abierto y admite variantes de GNU/Linux y BSD como FreeBSD, NetBSD, macOS y Solaris.
Instalación de Chrony
Chrony está disponible en los repositorios predeterminados de la mayoría de las distribuciones de Linux. Si está en Arch Linux, ejecute el siguiente comando para instalarlo:
$ sudo pacman -S chrony
En Debian, Ubuntu, Linux Mint:
$ sudo apt-get install chrony
En Fedora:
$ sudo dnf install chrony
Una vez instalado, inicie chronyd.service daemon si aún no se ha iniciado:
$ sudo systemctl start chronyd.service
Haz que se inicie automáticamente en cada reinicio usando el comando:
$ sudo systemctl enable chronyd.service
Para verificar si Chronyd.service se ha iniciado, ejecute:
$ sudo systemctl status chronyd.service
Si todo está bien, verá un resultado similar al siguiente.
● chrony.service - chrony, an NTP client/server Loaded: loaded (/lib/systemd/system/chrony.service; enabled; vendor preset: ena Active: active (running) since Wed 2018-10-17 10:34:53 UTC; 3min 15s ago Docs: man:chronyd(8) man:chronyc(1) man:chrony.conf(5) Main PID: 2482 (chronyd) Tasks: 1 (limit: 2320) CGroup: /system.slice/chrony.service └─2482 /usr/sbin/chronyd Oct 17 10:34:53 ubuntuserver systemd[1]: Starting chrony, an NTP client/server... Oct 17 10:34:53 ubuntuserver chronyd[2482]: chronyd version 3.2 starting (+CMDMON Oct 17 10:34:53 ubuntuserver chronyd[2482]: Initial frequency -268.088 ppm Oct 17 10:34:53 ubuntuserver systemd[1]: Started chrony, an NTP client/server. Oct 17 10:35:03 ubuntuserver chronyd[2482]: Selected source 85.25.84.166 Oct 17 10:35:03 ubuntuserver chronyd[2482]: Source 85.25.84.166 replaced with 2403 Oct 17 10:35:03 ubuntuserver chronyd[2482]: Selected source 91.189.89.199 Oct 17 10:35:06 ubuntuserver chronyd[2482]: Selected source 106.10.186.200
Como puede ver, ¡el servicio Chrony está iniciado y funcionando!
Configurar Chrony
Los clientes NTP necesitan saber a qué servidores NTP deben contactar para obtener la hora actual. Podemos especificar los servidores NTP en el servidor o piscina directiva en el archivo de configuración NTP. Por lo general, el archivo de configuración predeterminado es /etc/chrony/chrony.conf o /etc/chrony.conf dependiendo de la versión de distribución de Linux. Para una mayor confiabilidad, se recomienda especificar al menos tres servidores.
Las siguientes líneas son solo un ejemplo tomado de mi servidor Ubuntu 18.04 LTS.
[...] # About using servers from the NTP Pool Project in general see (LP: #104525). # Approved by Ubuntu Technical Board on 2011-02-08. # See http://www.pool.ntp.org/join.html for more information. pool ntp.ubuntu.com iburst maxsources 4 pool 0.ubuntu.pool.ntp.org iburst maxsources 1 pool 1.ubuntu.pool.ntp.org iburst maxsources 1 pool 2.ubuntu.pool.ntp.org iburst maxsources 2 [...]
Como puede ver en el resultado anterior, NTP Pool Project se ha establecido como el servidor de tiempo predeterminado. Para aquellos que se preguntan, el proyecto de grupo NTP es el grupo de servidores de tiempo que proporciona el servicio NTP para decenas de millones de clientes en todo el mundo. Es el servidor de tiempo predeterminado para Ubuntu y la mayoría de las otras distribuciones principales de Linux.
Aquí,
- el estallido se utiliza para acelerar la sincronización inicial.
- las fuentes máximas refiere el número máximo de fuentes NTP.
Asegúrese de que los servidores NTP que ha elegido estén bien sincronizados, sean estables y estén cerca de su ubicación para mejorar la precisión de la hora con las fuentes NTP.
Administrar Chronyd desde la línea de comandos
Chrony tiene una utilidad de línea de comandos llamada chronyc para controlar y monitorear el chrony demonio (chronyd).
Para comprobar si chrony está sincronizado, podemos usar el seguimiento comando como se muestra a continuación.
$ chronyc tracking Reference ID : 6A0ABAC8 (t1.time.sg3.yahoo.com) Stratum : 3 Ref time (UTC) : Wed Oct 17 11:48:51 2018 System time : 0.000984587 seconds slow of NTP time Last offset : -0.000912981 seconds RMS offset : 0.007983995 seconds Frequency : 23.704 ppm slow Residual freq : +0.006 ppm Skew : 1.734 ppm Root delay : 0.089718960 seconds Root dispersion : 0.008760406 seconds Update interval : 515.1 seconds Leap status : Normal
Podemos verificar las fuentes de tiempo actuales que usa chrony con el comando:
$ chronyc sources 210 Number of sources = 8 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- chilipepper.canonical.com 2 10 377 296 +102ms[ +104ms] +/- 279ms ^- golem.canonical.com 2 10 377 302 +105ms[ +107ms] +/- 290ms ^+ pugot.canonical.com 2 10 377 297 +36ms[ +38ms] +/- 238ms ^- alphyn.canonical.com 2 10 377 279 -43ms[ -42ms] +/- 238ms ^- dadns.cdnetworks.co.kr 2 10 377 1070 +40ms[ +42ms] +/- 314ms ^* t1.time.sg3.yahoo.com 2 10 377 169 -13ms[ -11ms] +/- 80ms ^+ sin1.m-d.net 2 10 275 567 -9633us[-7826us] +/- 115ms ^- ns2.pulsation.fr 2 10 377 311 -75ms[ -73ms] +/- 250ms
La utilidad Chronyc puede encontrar las estadísticas de cada fuente, como la tasa de deriva y el proceso de estimación de compensación, utilizando sourcestats comando.
$ chronyc sourcestats 210 Number of sources = 8 Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ============================================================================== chilipepper.canonical.com 32 16 89m +6.293 14.345 +30ms 24ms golem.canonical.com 32 17 89m +0.312 18.887 +20ms 33ms pugot.canonical.com 32 18 89m +0.281 11.237 +3307us 23ms alphyn.canonical.com 31 20 88m -4.087 8.910 -58ms 17ms dadns.cdnetworks.co.kr 29 16 76m -1.094 9.895 -83ms 14ms t1.time.sg3.yahoo.com 32 16 91m +0.153 1.952 +2835us 4044us sin1.m-d.net 29 13 83m +0.049 6.060 -8466us 9940us ns2.pulsation.fr 32 17 88m +0.784 9.834 -62ms 22ms
Si su sistema no está conectado a Internet, debe notificar a Chrony que el sistema no está conectado a Internet. Para hacerlo, ejecute:
$ sudo chronyc offline [sudo] password for sk: 200 OK
Para verificar el estado de sus fuentes NTP, simplemente ejecute:
$ chronyc activity 200 OK 0 sources online 8 sources offline 0 sources doing burst (return to online) 0 sources doing burst (return to offline) 0 sources with unknown address
Como puede ver, todas mis fuentes NTP están inactivas en este momento.
Una vez que esté conectado a Internet, simplemente notifique a Chrony que su sistema está nuevamente en línea usando el comando:
$ sudo chronyc online 200 OK
Para ver el estado de las fuentes NTP, ejecute:
$ chronyc activity 200 OK 8 sources online 0 sources offline 0 sources doing burst (return to online) 0 sources doing burst (return to offline) 0 sources with unknown address
Para obtener una explicación más detallada de todas las opciones y parámetros, consulte las páginas man.
$ man chronyc
$ man chronyd
Y, eso es todo por ahora. Espero que esto haya sido útil. En los tutoriales posteriores, veremos cómo configurar un servidor NTP local usando Chrony y configurar los clientes para usarlo para sincronizar la hora.
¡Estén atentos!