Sincronización horaria en Linux con NTP

¿Qué es, qué significa y para qué sirve NTP?

El protocolo NTP corresponde a las siglas Network Time Protocol y sirve para sincronizar el reloj del sistema operativo con precisión de nanosegundos con los servidores de hora (relojes atómicos) que hay repartidos por el Mundo.

NTP utiliza el puerto UDP 123, por lo que tendremos que tener abierto en nuestro firewall este puerto.

En los sistemas RedHat donde configuro NTP, lo hago de la siguiente manera:

Configuración de NTP mediante el fichero ntp.conf

El fichero ntp.conf se utiliza para configurar el servidor de NTP en los servidores Linux. En Linux RedHat, se instala con el paquete ntp-version:

[[email protected] ~]# rpm -qa |grep -i ntp-4
ntp-4.2.6p5-15.el6_10.x86_64
[[email protected] ~]#

Y habilitamos el servicio con el comando correspondiente según la versión de RedHat:

  • RHEL6:
    • service ntpd enable
    • service ntpd start
  • RHEL7:
    • systemctl enable ntpd
    • systemctl start ntpd

Una vez arrancado el servicio, podemos pasar a configurarlo:

  • Selecciono la zona horaria:
# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
 1) Africa
 2) Americas
 3) Antarctica
 4) Arctic Ocean
 5) Asia
 6) Atlantic Ocean
 7) Australia
 8) Europe
 9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 8
Please select a country.
 1) Aaland Islands 18) Greece 35) Norway
 2) Albania 19) Guernsey 36) Poland
 3) Andorra 20) Hungary 37) Portugal
 4) Austria 21) Ireland 38) Romania
 5) Belarus 22) Isle of Man 39) Russia
 6) Belgium 23) Italy 40) San Marino
 7) Bosnia & Herzegovina 24) Jersey 41) Serbia
 8) Britain (UK) 25) Latvia 42) Slovakia
 9) Bulgaria 26) Liechtenstein 43) Slovenia
10) Croatia 27) Lithuania 44) Spain
11) Czech Republic 28) Luxembourg 45) Sweden
12) Denmark 29) Macedonia 46) Switzerland
13) Estonia 30) Malta 47) Turkey
14) Finland 31) Moldova 48) Ukraine
15) France 32) Monaco 49) Vatican City
16) Germany 33) Montenegro
17) Gibraltar 34) Netherlands
#? 44
Please select one of the following time zone regions.
1) mainland
2) Ceuta & Melilla
3) Canary Islands
#? 1

The following information has been given:

Spain
 mainland

Therefore TZ='Europe/Madrid' will be used.
Local time is now: Fri Oct 17 09:41:34 CEST 2014.
Universal Time is now: Fri Oct 17 07:41:34 UTC 2014.
Is the above information OK?
1) Yes
2) No
#? yes
Please enter 1 for Yes, or 2 for No.
#? 1

You can make this change permanent for yourself by appending the line
 TZ='Europe/Madrid'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Europe/Madrid

# date
Fri Oct 17 08:41:46 BST 2014
#

# cat /etc/sysconfig/clock
ZONE="Europe/Madrid"
#

cp /usr/share/zoneinfo/Europe/Madrid /etc/localtime
  • En el fichero /etc/ntp.conf indico la IP del servidor de hora con el que me voy a sincronizar:
# cat /etc/ntp.conf 
tinker panic 0
disable monitor
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
server 30.34.194.1 version 2
#
  • Arranco el servicio ntpd:
# service ntpd status
Redirecting to /bin/systemctl status ntpd.service
● ntpd.service - Network Time Service
 Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
 Active: active (running) since Thu 2017-10-26 09:31:10 CEST; 5 days ago
 Main PID: 867 (ntpd)
 CGroup: /system.slice/ntpd.service
 └─867 /usr/sbin/ntpd -u ntp:ntp -u ntp:ntp -p /var/run/ntpd.pid -g

Oct 26 09:31:12 lclawit00 ntpd[867]: Listen normally on 4 eth0 172.24.92.10 UDP 123
Oct 26 09:31:12 lclawit00 ntpd[867]: Listen normally on 5 eth0:1 30.34.194.14 UDP 123
Oct 26 09:31:12 lclawit00 ntpd[867]: new interface(s) found: waking up resolver
Oct 26 09:31:13 lclawit00 ntpd[867]: Listen normally on 6 eth0 fe80::250:56ff:fe25:467 UDP 123
Oct 26 09:31:13 lclawit00 ntpd[867]: new interface(s) found: waking up resolver
Oct 26 09:40:00 lclawit00 ntpd[867]: 0.0.0.0 c61c 0c clock_step -0.687683 s
Oct 26 09:39:59 lclawit00 ntpd[867]: 0.0.0.0 c614 04 freq_mode
Oct 26 09:40:00 lclawit00 ntpd[867]: 0.0.0.0 c618 08 no_sys_peer
Oct 26 09:55:40 lclawit00 ntpd[867]: 0.0.0.0 c612 02 freq_set kernel -11.440 PPM
Oct 26 09:55:40 lclawit00 ntpd[867]: 0.0.0.0 c615 05 clock_sync
#

Si ya lo teníamos arrancado, lo reiniciaremos tras el cambio de configuración (en vez del parámetro start, utilizaremos restart).

Listado de servidores NTP

Si por alguna razón quieres modificar los servidores NTP Stratum, puedes encontrar un listado de servidores NTP a nivel mundial en ntp.org.

Los que están ubicados en España están etiquetados con el código ES.

Listado de servidores NTP

Si entramos en cualquiera de ellos, por ejemplo, en el de San Fernando, obtendremos los datos correspondientes del servidor NTP como, por ejemplo, su IP.

Servidor NTP en España

Dicho esto, lo ideal es utilizar un servidor de NTP lo más cercano a tu IP. Por ejemplo, el que te proporcione tu proveedor de Internet.

Sincronización manual de la hora con ntpdate

Una vez que ya tenemos configurado y arrancado el servicio de NTP en el sistema operativo, podemos forzar una sincronización de hora para comprobar su funcionamiento. En Linux, lo haremos con el comando ntpdate:

[[email protected] ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*30.32.0.1       138.35.51.48     3 u  599 1024  377    0.874    2.630   2.194
[[email protected] ~]# ntpdate -u 30.32.0.1
29 Jan 15:50:23 ntpdate[5833]: adjust time server 30.32.0.1 offset 0.002647 sec
[[email protected] ~]#

Configuración de NTP con Chrony

En RedHat 7, el servicio NTP ha sido sustituido por el de chrony para la sincronización horaria del servidor, aunque NTP todavía sigue disponible en el repositorio de yum para quien quiera o necesite utilizarlo. Chrony es capaz de sincronizar más rápida y precisamente la hora del servidor y su configuración es muy sencilla.

Instalación de chrony

Lo instalaremos con el comando yum install chrony.

[[email protected] ~]# rpm -qa |grep -i chrony
chrony-3.1-2.el7.centos.x86_64
[[email protected] ~]#

Configuración y arranque de chrony

Configuramos los servidores de hora con los que nos queremos sincronizar:

[[email protected] ~]# cat /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2

# Allow NTP client access from local network.
#allow 192.168.0.0/16

# Serve time even if not synchronized to a time source.
#local stratum 10

# Specify file containing keys for NTP authentication.
#keyfile /etc/chrony.keys

# Specify directory for log files.
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking
[[email protected] ~]#

Arrancamos el servicio de Chrony:

[[email protected] ~]# systemctl enable chronyd
[[email protected] ~]# systemctl start chronyd

Verificamos que ya estamos sincronizando la hora:

[[email protected] ~]# chronyc tracking
Reference ID : 22F2D91F (ec2-34-242-217-31.eu-west-1.compute.amazonaws.com)
Stratum : 3
Ref time (UTC) : Thu May 10 06:55:46 2018
System time : 0.000000000 seconds slow of NTP time
Last offset : -0.833088040 seconds
RMS offset : 0.833088040 seconds
Frequency : 18.322 ppm slow
Residual freq : -0.000 ppm
Skew : 57.486 ppm
Root delay : 0.006454295 seconds
Root dispersion : 0.015800634 seconds
Update interval : 0.0 seconds
Leap status : Normal
[[email protected] ~]#

Reference ID: Es el servidor de hora con el que nos estamos sincronizando.
Stratum: Indica el número de saltos que tenemos que hacer desde nuestro sistema hasta llegar al servidor original de hora.
Ref time: La última hora medida en formato UTC.

Consultas a chrony con chronyc

Obtenemos información de los servidores de hora:

[[email protected] ~]# chronyc sources
210 Number of sources = 4
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? bray.walcz.net 2 6 3 43 -831ms[ -831ms] +/- 39ms
^? ec2-52-17-30-119.eu-west> 2 6 1 44 -833ms[ -833ms] +/- 11ms
^? ec2-34-242-217-31.eu-wes> 2 6 3 45 -833ms[ -833ms] +/- 17ms
^? ec2-52-17-231-73.eu-west> 2 6 3 44 -830ms[ -830ms] +/- 33ms
[[email protected] ~]#

[[email protected] ~]# chronyc sourcestats
210 Number of sources = 4
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev
==============================================================================
bray.walcz.net 2 0 65 +0.000 2000.000 -831ms 4000ms
ec2-52-17-30-119.eu-west> 1 0 0 +0.000 2000.000 +0ns 4000ms
ec2-34-242-217-31.eu-wes> 2 0 64 +0.000 2000.000 -833ms 4000ms
ec2-52-17-231-73.eu-west> 2 0 65 +0.000 2000.000 -830ms 4000ms
[[email protected] ~]#

Con los comandos man chronydman chrony.conf obtendremos más ayuda sobre multitud de parámetros de este servicio.

Tal y como hemos podido observar a lo largo de este documento, chronyd es el demonio o proceso que corre en segundo plano mientras que chronyc es una interfaz de línea de comandos que se puede utilizar para monitorizar el rendimiento de chronyd.

Por último, el comando timedatectl puede sernos útil para comprobar si se está sincronizando la hora.

¿Te ha gustado? ¡Compártelo!

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

Portátiles

Rebajas
Lenovo S145-15AST - Ordenador portátil 15.6" FullHD (AMD A9-9425, 8GB de RAM, 512GB SSD,...
  • Pantalla de 15,6"fullhd 1920x1080 pixeles
  • Procesador amd a9-9425, dualcore 3.1ghz hasta 3.7ghz, 1m
  • Memoria ram de 8gddr4, 2133mhz
Lenovo S145-15AST - Ordenador portátil 15.6" FullHD (AMD A6-9225, 8GB de RAM, 256GB SSD,...
  • Pantalla de 15,6"FullHD 1920x1080 pixeles
  • Procesador AMD A6, DualCore 3.1GHz hasta 3.7GHz, 1MB
  • Memoria RAM de 8GB DDR4, 2133Mhz
Rebajas
Acer A315-54K - Ordenador portátil de 15.6" HD (Intel Core i3-7020U, 8GB de RAM, 256GB...
  • Pantalla de 15.6", HD (1366x768 pixels)
  • Procesador intel core i3-7020u (2 núcleos, 3MB cache, hasta 2.3 GHz)
  • Memoria RAM de 8GB DDR4, 2133 MHz
Lenovo S145-15AST - Ordenador portátil 15.6" FullHD (AMD A6-9225, 8GB de RAM, 256 SSD,...
  • Pantalla de 15,6"fullhd 1920x1080 pixeles
  • Procesador amd a6-9225, dualcore 2.6ghz hasta 3ghz, 1mb
  • Memoria ram de 8gb ddr4, 2133mhz

Monitores PC

Rebajas
HP 22w - Monitor 21.5" (Full HD, 1920 x 1080 pixeles, tiempo de respuesta de 5 ms, 1 x...
  • Regálale a tu escritorio un toque de elegancia
  • Esta pantalla IPS de 53.61 cm (21,5 pulgadas) en diagonal dispone de 178 ángulos de visualización para ofrecer una experiencia de entretenimiento...
  • Con los puertos VGA y HDMI, esta pantalla hace que conectar tu ordenador portátil o pc de sobremesa sea una tarea sencilla y fluida
Rebajas
Samsung LC24F390FHU - Monitor para PC Desktop de 24'' (1920 x 1080 pixeles, Full HD, HD...
  • Pantalla de 24 pulgadas con una resolución de 1920 x 1080 píxeles
  • Brillo de pantalla: 250 cd / m²
  • Interfaz de montaje VESA 75 x 75 mm
Rebajas
BenQ GW2470HL - Monitor para PC Desktop de 23.8" Full HD (1920x1080, VA, 16:9, 2x HDMI,...
  • Los niveles ajustables de baja luz azul eliminan la luz azul peligrosa y mantienen la luz beneficiosa para una comodidad de visualización prolongada
  • Disfruta de gráficos nítidos con una resolución de 1920 x 1080
  • Minimiza las distracciones y crea una configuración de varios paneles con monitores de bisel estrecho

Discos Externos

Toshiba Canvio Basics, Disco Duro, 1, Negro
  • Disco duro externo de 2.5"
  • Acabado mate
  • Puerto superspeed usb 3.0
WD Elements - Disco duro externo portátil de 2 TB con USB 3.0, color negro
  • Capacidad de almacenamiento de 2 TB
  • Conexión USB 3.0 y compatibilidad con versiones anteriores de dispositivos USB 2.4
  • Compatibilidad: con formato NTFS para Windows 10, Windows 8.1 o Windows 7. Puede requerir reformatear para otros sistemas operativos. El nivel de...
WD Elements - Disco duro externo portátil de 3 TB con USB 3.0, color negro
  • Conexión USB 3.0 y compatibilidad con versiones anteriores de dispositivos USB 2.5
  • Diseñado para ordenadores con sistema operativo Windows, formatable para Mac

También te puede gustar

Tutorial de fail2ban

Tabla de contenidos1 ¿Qué es fail2ban?2 Instalar fail2ban en Linux Centos 73 Configuración de fail2ban3.1 Protección de servicios concretos4 Logs

Leer más »

Deja un comentario

About Author