¿Cómo sincronizar la hora con un servidor en Raspberry Pi?

Si hace clic en nuestros enlaces y realiza una compra, es posible que recibamos una comisión.. Más información

Solo me di cuenta de lo importante que es la sincronización de tiempo cuando uno de mis proyectos de Raspberry Pi comenzó a registrar marcas de tiempo incorrectas. Si estás ejecutando servidores, scripts o automatización, esto importa más de lo que piensas. Te mostraré cómo sincronizar tu Pi correctamente y evitar los problemas más comunes.

Al instalar Raspberry Pi OS, el sistema utiliza el comando timedatectl para la sincronización de tiempo. Los servidores de tiempo predeterminados se pueden actualizar en el archivo de configuración, ubicado en /etc/systemd/timesyncd.conf. Alternativamente, se puede instalar un servicio NTP.

En esta guía, te mostraré las 2 principales formas de manejar esta sincronización de tiempo en Raspberry Pi OS y la mayoría de las distribuciones de Linux: timedatectl (el método predeterminado) y NTP (el método tradicional). Pero empecemos con un poco de teoría sobre este tema.

Si estás empezando con Raspberry Pi o Linux, tengo algo que puede ayudarte de inmediato.
Descarga mi hoja de trucos de comandos Linux gratis – es una guía de referencia rápida con todos los comandos esenciales que necesitas para avanzar con tu Raspberry Pi. Haz clic aquí para obtenerla gratis!

Introducción a la sincronización de tiempo

Antes de continuar con información técnica y 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 todas las computadoras. Por ejemplo, no puedes conectarte a Active Directory o a recursos compartidos de Samba si tu computadora tiene un retraso de tan solo 5 minutos (mira mi tutorial sobre cómo unirse a un Active Directory con una Raspberry Pi, en inglés).

Así que necesitamos configurar sistemas de sincronización de tiempo en la red.

El protocolo NTP tiene este rol. Básicamente, configuras tu computadora para pedir la hora a otra computadora y la respuesta se utiliza para establecer la hora actual (es un poco más complejo que eso, pero recordar esto ya es genial).

diagrama de cómo funciona la sincronización de tiempo NTP
Protocolo de Tiempo de Red (fuente: Wikipedia)

Por lo general, en cada red hay un servidor maestro que obtiene la hora actual de un servidor de Internet. Luego, todas las computadoras se sincronizan con ese servidor maestro.

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

Si necesitas más detalles sobre la teoría antes de continuar, este video es bastante bueno:

Por cierto, si solo buscas configurar la fecha y hora manualmente en Raspberry Pi OS, hay formas más fáciles de hacerlo. No necesitas necesariamente configurar algo más exacto como la sincronización de tiempo. Y también tengo un artículo sobre cómo hacer esto en Ubuntu si no estás usando Raspberry Pi OS: es similar, pero no todos los comandos son los mismos: ¿Cómo Sincronizar el Reloj del Sistema Ubuntu? (GUI, timedatectl & NTP), en inglés.

💡 Si quieres aprender más sobre Raspberry Pi sin perderte entre cientos de tutoriales, echa un vistazo a mi guía “Domina Raspberry Pi en 30 días”.

Sincronización de tiempo en Raspberry Pi: timedatectl

¿Se te olvidan los comandos de Raspberry Pi?
Descarga gratis el PDF con los 74 comandos esenciales, explicados con ejemplos.
Descargar gratis

Vamos a revisar dos métodos para realizar la sincronización de tiempo. El primero es timedatectl, que está disponible en la mayoría de los sistemas operativos Linux modernos que ejecutan systemd (en inglés).

¿Qué es timedatectl en Raspberry Pi?

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

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

timedatectl status

Esto debería darte algo como esto:

Así que obtendrás:

  • La hora local.
  • La hora universal (lo mismo por defecto).
  • La hora RTC si está configurada (solo existe en Raspberry Pi 5 actualmente).
  • La zona horaria actual (GMT por defecto).
  • El estado actual de sincronización de tiempo de red.

Como puedes ver, mi Raspberry Pi ya está sincronizada por defecto.

Comandos de timedatectl

Antes de continuar con la configuración de timedatectl, quiero mostrarte algunos comandos útiles que puedes usar directamente.

Listar zonas horarias

Si necesitas cambiar la zona horaria predeterminada, primero necesitas conocer todos los valores disponibles.
Para hacer esto, usa este comando:

timedatectl list-timezones

Como la lista es grande, puedes filtrarla con el comando grep: (en inglés)

timedatectl list-timezones | grep America
timedatectl list-timezones | grep Sydney
comando timedatectl mostrando zonas horarias en america

Anota tu zona horaria local y úsala con el siguiente comando.

Configurar zona horaria

Para establecer la zona horaria actual, usa este comando:

sudo timedatectl set-timezone <zona horaria>

Por ejemplo:

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

Usa el comando timedatectl status nuevamente para verificar que la hora actual sea correcta.

También puedes cambiar la zona horaria en raspi-config (en inglés) > Opciones de Localización > Zona Horaria.

Configurar la hora manualmente

También puedes establecer la hora manualmente con timedatectl.
Aquí te muestro cómo:

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

Por ejemplo:

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

Pero para hacer esto, necesitas desactivar la sincronización de tiempo (ver siguiente párrafo).

Habilitar o deshabilitar la sincronización de tiempo

Si quieres deshabilitar o habilitar la sincronización de tiempo, usa estos comandos:

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

Nota: Es posible que necesites reiniciar la Raspberry Pi para aplicar este cambio.

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

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

Aquí te muestro cómo configurar la sincronización de tiempo con un servidor usando timedatectl:

  • Abre el archivo de configuración:
    sudo nano /etc/systemd/timesyncd.conf
  • Comenta la línea que comienza con FallbackNTP y reemplaza los servidores predeterminados con tus propios servidores de tiempo (en Internet o en la red local).
  • Por ejemplo:
    [Time]
    #NTP=
    FallbackNTP=0.us.pool.ntp.org 1.us.pool.ntp.org
  • Guarda los cambios y sal.

Puede ser necesario reiniciar para actualizar la configuración, pero tu fecha y hora ahora estarán sincronizadas con los servidores definidos en este archivo de configuración.

Espera, ¡tengo algunas recomendaciones para ti!

Antes de continuar, te invito a descubrir algunos productos que he seleccionado cuidadosamente para ti. Creo que son esenciales para tu Raspberry Pi. Échales un vistazo y pídelos directamente en Amazon.

Una caja silenciosa y práctica Un SSD de alto rendimiento para potenciar tu Pi Una pantalla genial para liberar el televisor Un teclado dedicado con touchpad

Sincronización de tiempo en Raspberry Pi: NTP

La segunda y más antigua forma de hacer la sincronización de tiempo en Linux es usar NTP.

Introducción a NTP

Aunque Debian y Ubuntu lo están reemplazando con timedatectl en nuevas versiones, sigue siendo un software común en sistemas Linux.

No estoy seguro de entender todas las diferencias entre ambos y por qué están migrando a timedatectl. Pero en mi mente, creo que timedatectl está pensado para clientes: es fácil de usar y configurar desde el principio. En cambio, NTP probablemente sea mejor en un servidor, para sincronizar la hora con él y contar con más opciones de configuración.

Instalación y configuración de NTP

Como mencioné, NTP no está disponible por defecto en Raspberry Pi OS. Necesitaremos una implementación de cliente/servidor NTP para usarlo. Para este ejemplo, instalaré el paquete ‘chrony’:

sudo apt install chrony

El archivo de configuración para chrony está disponible aquí: /etc/chrony/chrony.conf
Puedes editarlo para establecer un nuevo servidor de sincronización horaria (líneas que comienzan con “pool”).

Si deseas usar tu Raspberry Pi como un servidor NTP, también es en este archivo donde puedes cambiar la configuración del servidor (restringir acceso, transmitir hora, etc.).

Sincronización automática de tiempo con NTP

NTP tiene menos comandos que timedatectl ya que todo está en el archivo de configuración.
Pero puedes usar este para administrar el servicio del servidor, ‘chrony’ en nuestro ejemplo:

sudo service chrony status | start | stop | restart

Cuando este servicio NTP esté activo, verificará periódicamente si tu sistema está sincronizado con los servidores de tiempo que configuraste arriba, y luego automáticamente corregirá la fecha y hora de tu sistema.

El servicio está configurado y olvidado, así que ya has terminado aquí.
Tu fecha y hora deberían estar sincronizadas de aquí en adelante.

Sincronización manual de tiempo con NTP

Si no estás usando el servicio automático o no quieres hacerlo por alguna razón, puedes ingresar un comando para forzar manualmente la sincronización de tiempo.

Verifica tu retraso de tiempo actual en comparación con un servidor:

sudo chronyc tracking

En mi caso, tenía un desfase de ~ 0.001s. Confirma que el servidor NTP está funcionando bien.

Corrige el desfase ahora:
Necesitarás detener el servicio NTP para ejecutar una sincronización manual de tiempo.

sudo service chrony stop
sudo chronyd -q
sudo service chrony start

Obtendrás algo como esto.

Corregirá el desfase de tiempo detectado, y tu reloj del sistema ahora debería estar completamente sincronizado.

Tutorial en video

¿Se te olvidan los comandos de Raspberry Pi?
Descarga gratis el PDF con los 74 comandos esenciales, explicados con ejemplos.
Descargar gratis

Aquí hay un video que te muestra exactamente el proceso paso a paso para hacer esto:

También puedes suscribirte para recibir todos los videos de noticias en tu feed de YouTube:

Consejo: los comandos son un rollo de memorizar. Reuní los comandos esenciales de Linux en una chuleta imprimible para que no tengas que estar buscándolos en Google cada vez. Puedes descargar el PDF aquí si quieres ahorrar tiempo.

Resumen rápido

Comandos de timedatectl

ComandoDescripción
timedatectl statusMuestra la configuración actual.
timedatectl list-timezonesLista las zonas horarias que puedes usar.
sudo timedatectl set-timezone <zone>Establece tu zona horaria actual.
sudo timedatectl set-time <date-time>Establece la fecha/hora manualmente.
sudo timedatectl set-ntp <true/false>Habilita o deshabilita la sincronización de tiempo.

Comandos de NTP

ComandoDescripción
sudo apt install chronyInstala el servicio NTP.
service chrony status | start | stop | restartAdministra el servicio NTP.
sudo chronyc trackingComprueba el desfase horario con respecto a un servidor.
sudo chronyd -qFuerza una sincronización manual.
(El servicio NTP debe estar desactivado.)

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

Esto puede parecer innecesario en casa o en una red pequeña, pero es un componente esencial en grandes redes.

Más tutoriales como este en RaspberryTips:

Consejo: los comandos son un rollo de memorizar. Reuní los comandos esenciales de Linux en una chuleta imprimible para que no tengas que estar buscándolos en Google cada vez. Puedes descargar el PDF aquí si quieres ahorrar tiempo.

Preguntas frecuentes

¿Cómo sincronizo la hora en mi Raspberry Pi?

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

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

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

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

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

Cuando estés preparado, aquí tienes un atajo para ti:

Domina tu Raspberry Pi en 30 días: Si buscas los mejores consejos para convertirte en un experto en Raspberry Pi, este libro es para ti. Aprende habilidades útiles de Linux y practica múltiples proyectos con guías paso a paso.

Publicaciones Similares