Búsqueda de sitios web

Cómo configurar la hora, la zona horaria y sincronizar el reloj en Linux


En este artículo, aprenda cómo configurar la hora, la zona horaria y sincronizar el reloj de su sistema Linux con NTP usando timedatectl, systemd-timesyncd y chrony. :

El comando ‘timedatectl‘ es una utilidad para distribuciones basadas en RHEL y Debian, y forma parte del gestor de sistemas y servicios ‘systemd‘, sirviendo como reemplazo del antiguo comando date tradicional utilizado en las distribuciones Linux basadas en demonios ‘sysvinit‘.

El comando timedatectl te permite consultar y cambiar la configuración del reloj del sistema y sus ajustes. Puedes usar este comando para establecer o cambiar la fecha, hora y zona horaria actuales, o habilitar la sincronización automática del reloj del sistema con un servidor NTP remoto.

En este tutorial, voy a mostrarte las formas en que puedes administrar el tiempo en tu sistema Linux configurando la fecha, la hora, la zona horaria y sincronizando la hora con NTP desde la terminal usando timedatectl, systemd-timesyncd y chrony.

Siempre es una buena práctica mantener la hora correcta en su servidor o sistema Linux, y puede tener las siguientes ventajas:

  • Mantener el funcionamiento oportuno de las tareas del sistema, ya que la mayoría de las tareas en Linux están controladas por el tiempo.
  • Hora exacta para registrar eventos y otra información en el sistema.
  • Sincronización adecuada para sistemas y aplicaciones distribuidas.
  • Esencial para protocolos de seguridad como Kerberos y la validación de certificados SSL/TLS.

Cómo encontrar y configurar la zona horaria local en Linux

1. Para mostrar la hora y la fecha actuales en su sistema, use el comando timedatectl desde la línea de comandos de la siguiente manera:

timedatectl  status

Comprobar la fecha y hora del sistema Linux

En la salida anterior, la hora RTC es la hora del reloj de hardware.

2. La hora en su sistema Linux siempre se gestiona a través de la zona horaria configurada en el sistema; para ver su zona horaria actual, haga lo siguiente:

timedatectl 
OR
timedatectl | grep Time

Verifica la zona horaria de tu sistema Linux

3. Para ver todas las zonas horarias disponibles, ejecute el siguiente comando:

timedatectl list-timezones

Listar todas las zonas horarias en un sistema Linux

4. Para encontrar la zona horaria local según tu ubicación, ejecuta el siguiente comando.

timedatectl list-timezones |  egrep  -o "Asia/B.*"
timedatectl list-timezones |  egrep  -o "Europe/L.*"
timedatectl list-timezones |  egrep  -o "America/N.*"

Encuentra tu zona horaria local en Linux

5. Para configurar tu zona horaria local en Linux, usaremos el conmutador set-timezone como se muestra a continuación.

sudo timedatectl set-timezone "Asia/Kolkata"
timedatectl status

Configurar la zona horaria local en un sistema Linux

Siempre se recomienda utilizar y configurar la hora universal coordinada, UTC.

sudo timedatectl set-timezone UTC
timedatectl status

Configurar la hora de su sistema en UTC

Necesitas escribir el nombre correcto de la zona horaria, de lo contrario podrías obtener errores al cambiar la zona horaria. En el siguiente ejemplo, la zona horaria «Asia/Kolkata» no es correcta, lo que causa el error.

failed to set time zone: invalid timezone

Cómo configurar la hora y la fecha en Linux

Puedes configurar la fecha y la hora en tu sistema usando el comando timedatectl de la siguiente manera:

Configurar la hora en Linux

6. Para ajustar solo la hora, podemos usar un interruptor set-time junto con el formato de hora en HH:MM:SS (Hora, Minuto y Segundos).

sudo timedatectl set-time 12:25:30
timedatectl status

Es posible que aparezca el siguiente error al establecer la fecha como se muestra arriba:

Failed to set time: Automatic time synchronization is enabled

El error ocurre porque la sincronización automática de la hora (NTP) está activada, lo que impide los cambios manuales de hora.

Para arreglarlo, primero desactiva NTP y luego ajusta la hora.

sudo timedatectl set-ntp false
sudo timedatectl set-time 12:25:30
timedatectl status

Configurar la fecha y la hora local en Linux

7. Para configurar tanto la fecha como la hora, use el interruptor set-time junto con el formato de fecha en AAAA-MM-DD (Año, Mes, Día) y la hora en HH:MM:SS (Hora, Minuto y Segundos):

sudo timedatectl set-time '2026-01-23 12:25:30'

Configurando la Fecha y la Hora con el Formato YY:MM:DD y HH:MM:SS

Cómo encontrar y configurar el reloj de hardware en Linux

8. Para ajustar el reloj de hardware a la hora universal coordinada, UTC, utiliza la opción set-local-rtc boolean-value de la siguiente manera:

Primero averigua si el reloj de tu hardware está configurado en la zona horaria local:

timedatectl | grep local

Ajusta tu reloj de hardware a la zona horaria local:

sudo timedatectl set-local-rtc 1

Configura tu reloj de hardware en UTC en Linux

Configure su reloj de hardware en la hora universal coordinada (UTC):

sudo timedatectl set-local-rtc 0

Configura tu reloj de hardware en UTC

Nota: No se recomienda configurar el RTC en la hora local, ya que puede causar problemas con los ajustes de horario de verano; por lo tanto, es mejor mantener el RTC en UTC.

Sincronizando el reloj del sistema Linux con un servidor NTP remoto

NTP significa Protocolo de Tiempo de Red y es un protocolo de internet que se utiliza para sincronizar el reloj del sistema entre computadoras.

La utilidad timedatectl te permite sincronizar automáticamente el reloj de tu sistema Linux con un grupo remoto de servidores utilizando NTP.

La mayoría de las distribuciones modernas de Linux utilizan diferentes implementaciones para la sincronización NTP:

  • systemd-timesyncd: Un cliente SNTP (Simple NTP) ligero incorporado en systemd, que es adecuado para la mayoría de las configuraciones de escritorio y servidores individuales.
  • chrony: Una implementación completa de NTP que puede actuar tanto como cliente como servidor. Maneja mejor las conexiones de red intermitentes y es más precisa.

Usando systemd-timesyncd

Para iniciar la sincronización automática de la hora con un servidor NTP remoto, escriba el siguiente comando en la terminal, lo que habilitará y iniciará el servicio systemd-timesyncd.

sudo timedatectl set-ntp true

Para desactivar la sincronización de tiempo NTP, escriba el siguiente comando en la terminal.

sudo timedatectl set-ntp false

Para comprobar el estado de sincronización:

timedatectl status

Deberías ver «Reloj del sistema sincronizado: sí» y «Servicio NTP: activo».

Usando chrony (Recomendado para servidores)

Si estás administrando un servidor o necesitas una sincronización de tiempo más confiable, chrony es la mejor opción, y es especialmente bueno para:

  • Sistemas que no funcionan de manera continua (portátiles, ordenadores de escritorio).
  • Los servidores requieren alta precisión.
  • Sistemas con conectividad de red intermitente.
  • Entornos agrupados donde la consistencia temporal es crítica.

Primero, instala chrony (si aún no está instalado):

sudo apt install chrony   [On Debian-based systems]
sudo dnf install chrony   [On RHEL-based systems]

Nota: Instalar chrony desactivará automáticamente systemd-timesyncd para evitar conflictos.

Después de la instalación, habilite, inicie y verifique el estado de sincronización:

sudo systemctl enable --now chronyd
timedatectl status

Verificar el estado de sincronización del reloj del sistema

Para usar tus propios servidores NTP en lugar de los predeterminados, necesitas editar el archivo de configuración de Chrony.

sudo nano /etc/chrony/chrony.conf
OR
sudo nano /etc/chrony/sources.d/custom.sources

Agrega tus servidores NTP preferidos (puedes obtener una lista de servidores NTP del Proyecto NTP Pool).

pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
pool 2.pool.ntp.org iburst

Reinicia chrony después de los cambios:

sudo systemctl restart chronyd

Notas importantes sobre la sincronización NTP

  • No puedes ejecutar múltiples implementaciones de NTP simultáneamente, así que elige systemd-timesyncd o chrony.
  • systemd-timesyncd es una implementación solo de cliente y no puede proporcionar tiempo a otros sistemas.
  • chrony puede actuar tanto como cliente de tiempo como servidor de tiempo para tu red local.
  • Para servidores de producción e infraestructura crítica, generalmente se recomienda chrony en lugar de systemd-timesyncd.
  • NTP requiere que el puerto UDP 123 esté abierto para conexiones salientes.
Resumen

Estos son ejemplos muy fáciles descritos en este tutorial y espero que los encuentres útiles para configurar varios relojes y zonas horarias del sistema Linux.

Para obtener más información sobre esta herramienta, dirígete a la página del manual de timedatectl.

man timedatectl

Si tienes algo que decir sobre este artículo, no dudes en dejar un comentario para agregar cualquier información adicional.