¿Cómo Sincronizar La Hora Con Un Servidor En Raspberry Pi?

¿Tienes problemas con la configuración de la hora en Raspberry Pi?
¿O quizás quieras sincronizar la hora con otro servidor?
En este post, te enseñaré todo lo que necesitas saber sobre la sincronización de la hora en Raspberry Pi (y en Linux en general).

En una nueva instalación, una Raspberry Pi utiliza timedatectl para la sincronización de la hora. Los servidores pueden ser actualizados en el archivo de configuración, ubicado en /etc/systemd/timesyncd.conf. El servicio NTP también puede ser instalado si es necesario.

Explicaré cómo funciona la sincronización de la hora en Linux y cómo configurarla de la manera que quieras.
Compartiré las dos formas de hacerlo en una Raspberry Pi:
– Timedatectl: incluido en la instalación y bastante fácil de configurar.
– NTP: manera clásica de hacer esto en Linux, para una mayor compatibilidad con otros sistemas.
Y por último, te daré otros comandos útiles para la fecha y la hora en Raspberry Pi.

Introducción de la sincronización horaria

Antes de continuar con la información técnica y los comandos, quiero introducir cómo funciona la sincronización de tiempo en Linux, en Raspberry Pi y en la mayoría de los dispositivos modernos.

En una red, es crucial tener la misma hora en todos los ordenadores.
Por ejemplo, no puedes conectarte a los recursos compartidos de Active Directory o Samba si tu ordenador se retrasa en más de 5 minutos (revisa mi tutorial sobre cómo unirse a un Directorio Activo con una Raspberry Pi, en inglés).
Por lo tanto, hay que establecer sistemas de sincronización horaria en la red.

El protocolo NTP tiene esta función.
Básicamente, configuras tu ordenador para que pregunte la hora a otro ordenador, y que utilice la respuesta para establecer su hora actual (es un poco más complejo que eso, pero recordar esto ya es genial).

Normalmente, se tiene un servidor maestro en cada red que obtiene la hora actual de un servidor de Internet.
Y luego todos los ordenadores se sincronizan con este maestro.

En este post, te mostraré cómo hacer esta configuración usando timedatectl o NTP directamente.

Si necesitas más detalles sobre la teoría antes de seguir adelante, este vídeo es bastante bueno:

Por cierto, si estás buscando sólo para ajustar la fecha y la hora manualmente en su Raspberry Pi, hay formas más fáciles de hacerlo. No necesariamente tienes que cambiar nada de la sincronización de la hora.

¡Hola!
Inscríbete para recibir mis últimos tutoriales cada semana.

Sincronización de la hora en Raspberry Pi: Timedatectl

¿Qué es Timedatectl en Raspberry Pi?

Timedatectl es una herramienta para configurar la fecha y la hora. Las versiones recientes de Raspberry Pi OS incluyen timedatectl por defecto.

El primer comando que te mostraré es cómo comprobar el estado actual:

timedatectl status

Esto debería darte algo como esto:

Así que tendrás:

  • La hora local.
  • La hora universal (lo mismo por defecto).
  • La hora del RTC si está configurada (módulo no incluido en Raspberry Pi).
  • La zona horaria actual (GMT por defecto).
  • El estado actual de la sincronización horaria de la red.

Como puedes ver, mi Raspberry Pi ya está sincronizada con la hora por defecto (excepto la zona horaria).

Comandos Timedatectl

Antes de ir más allá en la configuración de timedatectl, quiero mostrarte algunos comandos útiles que puedes usar directamente.

Lista de zonas horarias

Si necesitas cambiar la zona horaria por defecto, primero debes conocer todos los valores disponibles.
Para ello, utilice este comando:

timedatectl list-timezones

Como la lista es grande, puedes filtrarla con el comando grep:

timedatectl list-timezones | grep America
timedatectl list-timezones | grep Sydney

Anota su zona horaria local y utilícela con el siguiente comando.

Establecer la zona horaria

Para establecer la zona horaria actual, utiliza este comando:

sudo timedatectl set-timezone <time zone>

Por ejemplo:

sudo timedatectl set-timezone America/New_York
sudo timedatectl set-timezone Europe/Paris
sudo timedatectl set-timezone Australia/Sydney

Vuelve a utilizar el estado de timedatectl para comprobar que la hora actual es correcta.

También puedse cambiar la zona horaria en raspi-config > Localization options > Change time zone.

Ajustar la hora manualmente

También puedes ajustar la hora manualmente con timedatectl.
He aquí cómo:

sudo timedatectl set-time 'Y:M:D HH:mm:ss'
sudo timedatectl set-time 'Y:M:D'
sudo timedatectl set-time 'HH:mm:ss'

Por ejemplo:

sudo timedatectl set-time '12:00:00'

Pero para ello, es necesario desactivar la sincronización horaria (véase el párrafo siguiente).

Activar o desactivar la sincronización horaria

Si quieres desactivar o activar la sincronización horaria, utiliza estos comandos:

sudo timedatectl set-ntp false
sudo timedatectl set-ntp true

Nota: es posible que tengas que reiniciar la Raspberry Pi para aplicar este cambio (ver comentarios).

Eso es todo, ahora conoces los comandos básicos de timedatectl.

Sincronizar la hora con un servidor: el archivo de configuración Timedatectl

A continuación se explica cómo configurar la sincronización horaria con un servidor mediante el uso de timedatectl:

  • Abrir el archivo de configuración:
    sudo nano /etc/systemd/timesyncd.conf
  • Comenta la línea que comienza con FallbackNTP y sustituye los servidores por defecto por sus servidores de tiempo (en Internet o desde la red local).
  • Por ejemplo:
    [Time]
    #NTP=
    FallbackNTP=0.us.pool.ntp.org 1.us.pool.ntp.org
  • Guardar y salir

Es posible que sea necesario reiniciar el sistema para actualizar la configuración, pero la fecha y la hora estarán sincronizadas con los servidores definidos en este archivo de configuración.

NTP

Introducción al NTP

La otra forma de hacer la sincronización de la hora en Linux es utilizar NTP.
Aunque Debian y Ubuntu lo están sustituyendo por timedatectl en las nuevas versiones, sigue siendo un software común en los sistemas Linux.

No estoy seguro de entender todas las diferencias entre ambos y por qué se están moviendo a timedatectl.
Pero creo que timedatectl es para los usuarios, fácil de usar y de configurar.
Y NTP es probablemente mejor funcionando como servidor, para sincronizar la hora con él y tener más opciones de configuración.

Configuración NTP

Instalación de NTP

Como he dicho, NTP no está disponible por defecto en Raspberry Pi OS.
Tienes que instalarlo con apt:

sudo apt install ntp

Configuración NTP

El archivo de configuración para NTP está disponible aquí: /etc/ntpd.conf
Puedes editarlo para establecer un nuevo servidor para la sincronización de la hora (líneas que comienzan con «pool»).

Si quieres usar tu Raspberry Pi como servidor NTP, es también en este archivo donde puedes cambiar la configuración del servidor (restringir el acceso, difundir la hora, …).

Comandos NTP

NTP tiene menos comandos que timedatectl ya que todo está en el archivo de configuración.
Pero puedes usar este para gestionar el demonio del servidor ntp:

service ntp status | start | stop | restart

NTPDate

ntpdate es un comando adicional que puedes instalar y utilizar para forzar la sincronización de la hora.

Instalación:

sudo apt install ntpdate

Comprueba tu retraso actual en comparación con un servidor:

sudo ntpdate -q 0.us.pool.ntp.org

En mi caso obtuve un desfase de 0,005s. Esto confirma que el servidor NTP está funcionando bien.

Arregla el retraso ahora:

El demonio NTP arreglará el retraso paso a paso.
Pero si quieres arreglarlo ahora, puedes usar:

sudo service ntp stop
sudo ntpdate 0.us.pool.ntp.org
sudo service ntp start

Es necesario detener el demonio NTP antes de utilizar ntpdate para liberar el puerto.

Obtendrás algo así:

Vídeo

Aquí tienes un vídeo que te muestra exactamente el proceso paso a paso para hacerlo:

También puedes suscribirte para ver todos los vídeos de noticias en tu feed de YouTube:

PREGUNTAS FRECUENTES

¿Cómo puedo sincronizar la hora en mi Raspberry Pi?

La sincronización de la hora está activada por defecto en Raspberry Pi OS. Puedes cambiar la zona horaria con raspi-config o la herramienta de configuración de la Raspberry Pi, para establecer la hora correcta en tu sistema. En el primer arranque, el menú de bienvenida también le preguntará su zona horaria.

¿Cómo puedo ajustar manualmente la fecha y la hora en Raspberry Pi?

Como regla general, utilizarás raspi-config para establecer la fecha y la hora en una versión Lite o la herramienta de configuración de Raspberry Pi si tienes un entorno de escritorio. También puede utilizar el comando sudo timedatectl set-time ‘HH:mm:ss’ para establecer la hora en un solo comando.

¿Cómo puedo encontrar la fecha y la hora en mi Raspberry Pi?

Con una versión de escritorio, la fecha y la hora se muestran en la esquina superior derecha, pero puedes escribir «date» en un terminal para obtener la fecha y la hora actuales en cualquier distribución de Linux.

En pocas palabras

Comandos Timedatectl

ComandoDescripción
timedatectl statusMostrar la configuración actual
timedatectl list-timezonesLista de las zonas horarias que puede utilizar
sudo timedatectl set-timezone <zone>Establecer tu zona horaria actual
sudo timedatectl set-time <date-time>Ajustar la fecha/hora manualmente
sudo timedatectl set-ntp <true/false>Activar o desactivar la sincronización horaria

Comandos NTP

ComandoDescripción
sudo apt install ntp ntpdateInstalar NTP y ntpdate
service ntp status | start | stop | restartGestionar el servicio NTP
sudo ntpdate -q 0.us.pool.ntp.orgComprueba el tiempo de retraso en comparación con un servidor
sudo ntpdate 0.us.pool.ntp.orgCambiar el servidor de sincronización (el servicio NTP debe estar desactivado)

Conclusión

Ahora sabes cómo cambiar la fecha y la hora en tu Raspberry Pi y cómo sincronizar el reloj de varios ordenadores Linux en la misma red.

Esto puede parecer no tan útil en casa o en una red pequeña, pero es un componente esencial en las grandes redes.

Más tutoriales como éste en RaspberryTips:

Publicaciones Similares