Sincronización de tiempo en Ubuntu explicada: ntpdate, systemd-timesyncd y mejores prácticas

目次

1. Por qué la sincronización horaria es importante en Ubuntu

1.1 El tiempo es un primitivo central del sistema en servidores Linux

En entornos Linux como Ubuntu, el tiempo no es solo información de visualización sino una suposición fundamental del sistema.
Internamente, casi todos los procesos del sistema operan basándose en la hora actual. Si esa hora es inexacta, puede causar problemas mucho más graves de lo que parece a primera vista.

Ubuntu se usa ampliamente para cargas de trabajo de servidores y la nube, y la deriva horaria afecta directamente a las siguientes áreas:

1.2 Problemas concretos causados por la deriva horaria

La integridad de los registros se rompe

Los registros del sistema y los registros de aplicaciones se guardan con marcas de tiempo.
Si el reloj del sistema es incorrecto:

  • El orden de los errores se vuelve confuso
  • La resolución de problemas se vuelve difícil
  • Los registros de varios servidores no pueden correlacionarse

Esto es especialmente crítico en sistemas distribuidos, donde incluso una ligera desincronización horaria puede hacer que la resolución de problemas sea prácticamente imposible.

Los certificados SSL y las funciones de seguridad fallan

Los certificados SSL/TLS usados en comunicaciones HTTPS verifican estrictamente los periodos de validez.
Si la hora del servidor es incorrecta:

  • “El certificado no es válido”
  • “El certificado aún no es válido”

pueden aparecer errores, y las conexiones pueden ser rechazadas por completo.

Esto afecta no solo a servidores web, sino también a comunicaciones API y a herramientas de gestión de paquetes como apt.

cron y los temporizadores systemd se comportan de forma errónea

Ubuntu suele usar lo siguiente para tareas programadas:

  • cron
  • temporizadores systemd

Si la hora del sistema es incorrecta:

  • Los trabajos esperados no se ejecutan
  • Las tareas se ejecutan en momentos no deseados

Esto puede derivar en fallos sutiles pero críticos, como copias de seguridad perdidas o trabajos por lotes fallidos.

1.3 Por qué esto es especialmente relevante en entornos de nube y VPS

Los despliegues modernos de Ubuntu normalmente se ejecutan en:

  • VPS
  • Nube (IaaS)
  • Máquinas virtuales

En estos entornos, la gestión del tiempo está separada entre el host y el sistema operativo invitado, y la deriva puede producirse debido a:

  • Sobrecarga de virtualización
  • Ciclos de suspensión/reanudación
  • Retrasos del reloj bajo alta carga

No es raro que el tiempo se desvíe varios minutos sin que se note.

Por estas razones, Ubuntu está diseñado alrededor de una sincronización horaria automática y continua.

1.4 Por qué tantas personas buscan “ntpdate”

Cuando ocurre una deriva horaria, muchos usuarios buscan:
“ubuntu time synchronization”
“ubuntu ntpdate”

Esto se debe a que:

  • ntpdate solía ser la herramienta estándar
  • Existe una gran cantidad de documentación desactualizada
  • Parece ofrecer una solución rápida de un solo comando

Sin embargo, Ubuntu moderno ha cambiado fundamentalmente su enfoque de sincronización horaria, y ejecutar ntpdate ya no es la solución recomendada.

2. Qué es ntpdate?

2.1 El rol básico de ntpdate

ntpdate es una herramienta de línea de comandos heredada para la sincronización horaria que se ha usado en entornos Linux durante muchos años.
Consulta un servidor NTP especificado y sincroniza el reloj del sistema solo una vez.

Sus características clave son:

  • No se ejecuta como daemon
  • Ajusta la hora inmediatamente al ejecutarse
  • Configuración extremadamente simple

Debido a esta simplicidad, muchos usuarios la veían como una solución rápida durante incidentes.

2.2 Cómo funciona ntpdate

El comportamiento interno de ntpdate es sencillo:

  1. Consultar la hora actual de un servidor NTP
  2. Calcular la diferencia con la hora local del sistema
  3. Aplicar la corrección de inmediato

Esto permite correcciones instantáneas para derivas que van de segundos a minutos.

Sin embargo, al forzar el ajuste del reloj del sistema, puede afectar negativamente a procesos y servicios en ejecución.

2.3 Diferencia entre ntpdate y ntpd

ntpdate a menudo se confunde con ntpd (el daemon NTP), pero sus roles difieren claramente.

  • ntpdate wp:list /wp:list

    • Ejecución única
    • Ajuste de hora inmediato
    • No permanece residente
    • ntpd (daemon NTP) wp:list /wp:list

    • Se ejecuta continuamente

    • Corrige el tiempo gradualmente
    • Diseñado para la estabilidad a largo plazo

Desde el punto de vista operativo, los servicios residentes son más seguros, y ntpdate siempre ha sido una herramienta complementaria.

3. Por qué “ubuntu ntpdate” sigue siendo buscado

3.1 Los usuarios buscan porque algo ya está roto

El término de búsqueda “ubuntu ntpdate” suele indicar que ya se ha producido un problema de sincronización horaria.

Los desencadenantes típicos incluyen:

  • Errores SSL en servidores
  • Tareas cron que no se ejecutan
  • Marcas de tiempo de registro incorrectas
  • Fallos en la actualización de paquetes

En esas situaciones, los usuarios naturalmente buscan soluciones rápidas.

3.2 La información desactualizada sigue abundando

Debido a que ntpdate se usó durante tanto tiempo, todavía existen grandes volúmenes de contenido desactualizado:

  • Publicaciones de blogs antiguos
  • Respuestas en sitios de preguntas y respuestas
  • Libros técnicos
  • Publicaciones en Qiita y Stack Overflow

Muchas de estas fuentes recomiendan ejecutar ntpdate sin explicar el contexto de la versión, lo que lleva a los usuarios a ejecutarlo a ciegas.

3.3 La brecha con la documentación oficial de Ubuntu

La documentación actual de Ubuntu asume:

  • systemd-timesyncd está habilitado por defecto
  • La sincronización horaria es automática y continua
  • La intervención manual suele ser innecesaria

Sin embargo, los principiantes a menudo piensan:

  • “¿Qué es systemd?”
  • “Eso suena complicado”
  • “Necesito arreglar esto de inmediato”

Como resultado, se inclinan por ntpdate porque parece más simple y rápido.

4. Manejo de ntpdate según la versión de Ubuntu

4.1 ntpdate en la era Ubuntu 16.04 / 18.04

Durante la era Ubuntu 16.04 y 18.04,
ntpdate era una opción práctica y de uso frecuente.

Las características clave de este período incluían:

  • El paquete ntpdate existía en los repositorios oficiales
  • Se usaba frecuentemente junto con ntpd
  • Se utilizaba ampliamente para la sincronización inicial y la resolución de problemas

Especialmente justo después de provisionar un servidor, cuando:

  • El reloj del sistema estaba significativamente desfasado
  • ntpd aún no se había estabilizado

ntpdate se consideraba extremadamente conveniente.

4.2 El cambio que comenzó con Ubuntu 18.04

A partir de Ubuntu 18.04,
systemd comenzó a adoptarse completamente internamente.

Este cambio arquitectónico introdujo:

  • Integración de la gestión del tiempo en systemd
  • Una suposición de sincronización residente y automática
  • Un papel reducido para herramientas de sincronización puntual

Aunque ntpdate todavía estaba disponible en esta etapa,
ya no se consideraba esencial.

4.3 El cambio decisivo en Ubuntu 20.04 y posteriores

Desde Ubuntu 20.04 en adelante, la situación cambió significativamente.

  • systemd-timesyncd habilitado por defecto
  • ntpdate no se instala por defecto
  • Clasificación clara como obsoleto

Como resultado, ejecutar ntpdate con la mentalidad anterior ahora provoca:

  • Errores de comando no encontrado
  • Problemas de paquetes faltantes
  • Conflictos con systemd

La conclusión clave es que
Ubuntu cambió completamente su filosofía de diseño de “sincronización puntual” a “sincronización continua”.

4.4 El estado actual en Ubuntu 22.04 / 24.04

En Ubuntu 22.04 y 24.04, esta política es aún más clara.

  • La sincronización horaria es automática
  • La participación del administrador es mínima
  • La sincronización manual es innecesaria en la mayoría de los casos

Como resultado, ntpdate rara vez aparece en la documentación oficial.

En su lugar, las herramientas principales son:

  • systemd-timesyncd
  • chrony (para casos de uso avanzados)

4.5 Confusión causada por ignorar las diferencias de versión

Muchos problemas surgen de situaciones como:

  • Aplicar conocimientos antiguos de Ubuntu a versiones más recientes
  • Resultados de búsqueda que omiten suposiciones de versión
  • Falta de conocimiento sobre la versión de Ubuntu instalada

Esto a menudo lleva a preguntas como:

“¿Por qué esto ya no funciona aunque antes sí funcionaba?”

En realidad, esto es una consecuencia natural de la evolución de Ubuntu.

4.6 Resumen de la perspectiva basada en versiones

En resumen:

  • 16.04 / 18.04 → ntpdate era práctico
  • 20.04 y posteriores → ntpdate generalmente innecesario
  • 22.04 / 24.04 → Se asume sincronización continua

5. Métodos recomendados de sincronización horaria en Ubuntu moderno

5.1 Diseño estándar de Ubuntu: sincronización continua automática

En los sistemas Ubuntu modernos,
el tiempo no es algo que los administradores ajusten manualmente, sino algo que se mantiene automáticamente.

El mecanismo central detrás de esto es la sincronización horaria integrada en systemd.

  • Se sincroniza automáticamente al arrancar
  • Ajusta continuamente durante la ejecución
  • Activado por defecto sin configuración especial

En la mayoría de los entornos,
la sincronización horaria precisa ya está funcionando.

5.2 Uso de systemd-timesyncd (configuración predeterminada)

¿Qué es systemd-timesyncd?

systemd-timesyncd es un
cliente NTP ligero incorporado en systemd.

Sus características incluyen:

  • Servicio residente con sincronización automática
  • Configuración muy simple
  • Optimizado para la configuración predeterminada de Ubuntu

A menos que tengas requisitos específicos,
esta es la elección correcta.

Comprobando el estado de la sincronización horaria

Puedes comprobar el estado actual con el siguiente comando:

timedatectl

Presta especial atención a:

  • System clock synchronized
  • NTP service

Si estos están habilitados,
la sincronización horaria ya funciona correctamente.

Habilitando la sincronización NTP

Si NTP está deshabilitado, puedes habilitarlo con:

sudo timedatectl set-ntp true

Esto inicia inmediatamente la sincronización automática mediante systemd-timesyncd.

Notas sobre el momento de la sincronización

systemd-timesyncd está diseñado para evitar:

  • Grandes saltos de tiempo abruptos
  • Correcciones agresivas frecuentes

Por lo tanto, cuando:

  • El reloj está significativamente desfasado
  • La red acaba de conectarse

puede que necesites esperar varios minutos para una sincronización completa.

5.3 Cuándo usar chrony

¿Qué es chrony?

chrony es una
solución de sincronización horaria de alta precisión y alta fiabilidad.

Se usa comúnmente en entornos como:

  • Servidores
  • Sistemas de larga duración
  • Condiciones de red inestables
  • Entornos virtualizados o contenedorizados

Diferencias con systemd-timesyncd

Las diferencias pueden resumirse de la siguiente manera:

  • systemd-timesyncd wp:list /wp:list

    • Ligero
    • Configuración simple
    • Uso de propósito general
    • chrony wp:list /wp:list

    • Alta precisión

    • Control fino
    • Operación orientada a servidores

Para escritorios y servidores pequeños,
systemd-timesyncd suele ser suficiente.

Cuándo es apropiado usar chrony

Considera chrony si:

  • La precisión del tiempo afecta directamente a los requisitos del negocio
  • Operas tus propios servidores NTP
  • La deriva del tiempo ocurre con frecuencia en entornos virtualizados

Sin embargo, no es necesario elegir chrony solo como “reemplazo de ntpdate”.

5.4 Por qué se recomiendan los servicios residentes

Ubuntu moderno favorece la sincronización residente por razones claras:

  • Evita cambios de tiempo abruptos
  • Minimiza interrupciones del servicio
  • Reduce errores humanos

Esto se alinea con una
filosofía de diseño de servidores que prioriza la estabilidad.

6. Si aún deseas usar ntpdate

6.1 Cómo decidir si ntpdate es necesario

Como regla general,
casi no hay necesidad de usar ntpdate en una operación normal.

Sin embargo, puede considerarse temporalmente en casos como:

  • Inmediatamente después del aprovisionamiento inicial del sistema
  • systemd-timesyncd no logra sincronizar
  • Los servicios residentes están deshabilitados intencionalmente
  • Entornos de prueba o de corta duración que requieren corrección inmediata

En otras palabras, ntpdate debe verse como
una medida de emergencia, no una solución permanente.

6.2 Casos típicos de uso temporal

Inmediatamente después de la instalación del SO

Después de crear una máquina virtual o VPS:

  • El reloj puede estar desfasado varios minutos o más
  • systemd-timesyncd puede no haberse sincronizado aún

En tales casos, ejecutar ntpdate una vez,
para luego devolver el control a un servicio residente,
es un enfoque razonable.

Cuando el reloj está gravemente desfasado

El tiempo puede volverse gravemente inexacto debido a:

  • Agotamiento de la batería
  • Problemas de la plataforma de virtualización
  • Cambios manuales del reloj

En tales situaciones,
los servicios NTP residentes pueden no recuperarse de forma adecuada,
y ntpdate puede usarse una vez para restablecer el reloj.

6.3 Instalación y uso de ntpdate

En Ubuntu 20.04 y versiones posteriores, ntpdate no se instala por defecto.
Para usarlo, debe instalarse explícitamente.

sudo apt update
sudo apt install ntpdate

Ejemplo de uso:

sudo ntpdate pool.ntp.org

Esto sincroniza la hora del sistema con el servidor NTP especificado.

Tenga en cuenta que esta acción es temporal.

6.4 Cuidado con los conflictos con systemd

El mayor riesgo al usar ntpdate es
el conflicto con servicios residentes como systemd-timesyncd.

Ejecutarlos ambos simultáneamente puede provocar:

  • Fuente de tiempo autoritaria poco clara
  • Cambios de hora inesperados
  • Impacto negativo en registros y servicios

Por lo tanto, al usar ntpdate:

  • Limitar su uso a situaciones temporales
  • Volver a la sincronización residente después
  • Nunca usarlo de forma continua

6.5 Por qué ntpdate no debe usarse de forma regular

Aunque es conveniente, ntpdate está en desventaja en los entornos Ubuntu modernos:

  • Ajustes de hora abruptos
  • No considera los servicios en ejecución
  • Conflictos con la filosofía de gestión automática

Como resultado,
lo que comienza como una solución ocasional puede convertirse en una fuente de inestabilidad.

6.6 Resumen de la posición correcta

ntpdate ha pasado de:

  • Antes una herramienta principal
  • Ahora una utilidad complementaria
  • Generalmente innecesario

Con este entendimiento,
puede usarse de manera calmada y apropiada cuando realmente se necesite.

7. Errores comunes y cómo manejarlos

7.1 Cuando aparece ntpdate: command not found

Significado del error

Este error indica que el comando ntpdate no existe en el sistema.
En Ubuntu 20.04 y versiones posteriores, esto no es una condición anormal sino un comportamiento esperado.

En la mayoría de los casos, esto ocurre porque:

  • ntpdate no se instala por defecto
  • La herramienta está obsoleta y se omite intencionalmente

Cómo abordar la solución

Cuando aparece este error, la primera pregunta debería ser:

“¿Realmente necesito ntpdate?”

  • Si systemd-timesyncd está habilitado, ntpdate es innecesario
  • Si la sincronización automática funciona, no se requiere ninguna acción

En lugar de instalar ntpdate simplemente porque falta,
priorizar métodos alineados con el diseño moderno de Ubuntu es el enfoque correcto.

7.2 Cuando aparece no server suitable for synchronization found

Significado del error

Este error significa que la comunicación con el servidor NTP falló.

Posibles causas incluyen:

  • No hay conectividad de red
  • Fallo en la resolución DNS
  • El firewall bloquea el tráfico
  • El servidor NTP especificado no responde

Puntos a verificar

Cuando ocurre este error, verifique lo siguiente en orden:

  • La conectividad a Internet está disponible
  • La resolución DNS funciona
  • El puerto UDP 123 no está bloqueado

Aunque parece ser un problema de NTP,
a menudo es realmente un problema de configuración de red.

7.3 Cuando systemd-timesyncd no sincroniza

Conceptos erróneos comunes

Es fácil asumir “el sistema está roto” cuando la hora es incorrecta,
pero systemd-timesyncd no garantiza una sincronización inmediata.

  • Justo después del arranque
  • Inmediatamente después de la conexión de red
  • Cuando el reloj está significativamente desfasado

La sincronización puede tardar un tiempo en estas situaciones.

Cómo evaluar la situación

Primero, confirme si:

  • NTP está habilitado
  • El servicio está en ejecución
  • No se reporta un estado de error

En muchos casos,
esperar brevemente es suficiente para que la sincronización se complete de forma natural.

7.4 Deriva del tiempo específica de entornos virtuales

Por qué las máquinas virtuales derivan más fácilmente

En entornos virtuales, la inestabilidad del tiempo es frecuente debido a:

  • Influencia del SO anfitrión
  • Variabilidad en la planificación de la CPU
  • Ciclos de suspensión y reanudación

Esto no es un defecto de Ubuntu en sí,
sino una característica de las plataformas de virtualización.

Estrategia básica de mitigación

En entornos virtuales:

  • Habilitar la sincronización de tiempo residente
  • Evitar correcciones puntuales repetidas
  • Asegurar que la hora del sistema anfitrión sea precisa

Este enfoque minimiza la deriva a largo plazo.

7.5 Por qué se debe evitar “Simplemente ejecutar ntpdate”

Cuando ocurren errores, es tentador simplemente ejecutar ntpdate,
pero rara vez resuelve el problema subyacente.

  • La causa raíz está en otro lugar
  • El problema suele reaparecer
  • El enfoque contradice el diseño del sistema

Especialmente durante fallos,
comprender los mecanismos en los que Ubuntu está diseñado es fundamental.

7.6 Resumen de manejo de errores

Al tratar problemas de sincronización horaria, considere el siguiente orden:

  1. ¿Está habilitada la sincronización automática?
  2. ¿Funciona correctamente la red?
  3. ¿Es el enfoque apropiado para la versión de Ubuntu?
  4. ¿Es realmente necesario un método de emergencia?

Mantener esta secuencia en mente evita ser engañado por ntpdate.

8. Conclusión: La forma correcta de pensar sobre la sincronización horaria en Ubuntu

8.1 ntpdate fue una vez correcto, pero ya no es la herramienta principal

En entornos anteriores de Ubuntu y Linux,
ntpdate era la solución estándar para la sincronización horaria.

  • Simple y fácil de entender
  • Corrección inmediata
  • Útil como solución de emergencia

Como resultado, sigue estando fuertemente presente en los resultados de búsqueda y en la memoria de los usuarios.

Sin embargo, los sistemas Ubuntu modernos han
cambiado fundamentalmente su arquitectura.

8.2 Ubuntu moderno asume sincronización automática y continua

Desde Ubuntu 20.04 en adelante, el diseño base incluye:

  • Gestión unificada basada en systemd
  • Sincronización NTP residente
  • Mantenimiento sin intervención manual

Esto significa que operaciones como:

  • Corregir la hora manualmente
  • Ejecutar comandos periódicos

ya no se esperan.

8.3 La primera verificación debe ser “¿Ya está sincronizado?”

Cuando aparecen problemas relacionados con el tiempo,
el primer paso no debe ser:

  • Buscar ntpdate
  • Ejecutar comandos inmediatamente

En su lugar, verifique:

  • Si la sincronización automática está habilitada
  • Si systemd-timesyncd está en ejecución

En muchos casos,
el sistema ya está correcto o se autocorregirá pronto.

8.4 Si usas ntpdate, hazlo solo temporalmente

Aún existen escenarios donde ntpdate puede ser apropiado:

  • Inmediatamente después del aprovisionamiento inicial
  • Cuando el reloj está gravemente inexacto
  • Entornos de prueba o temporales

Incluso entonces, es esencial:

  • Evitar el uso continuo
  • Volver a la sincronización automática después
  • Prevenir conflictos con los servicios residentes

ntpdate se entiende ahora como
una herramienta complementaria solo para casos excepcionales.

8.5 Evitar confusión alrededor de “ubuntu ntpdate”

El mensaje más importante de este artículo se puede resumir como:

Si necesitas buscar ntpdate en Ubuntu, la situación ya es excepcional

Comprender esto evita:

  • Ser engañado por artículos desactualizados
  • Reaccionar en exceso a los mensajes de error
  • Realizar cambios de configuración innecesarios

8.6 Las decisiones correctas conducen a operaciones estables

La sincronización horaria puede parecer mundana,
pero es el fundamento de la fiabilidad del sistema.

  • Confía en la sincronización automática
  • Entiende el diseño moderno de Ubuntu
  • Actualiza conocimientos operacionales desactualizados

Esta mentalidad lleva a sistemas Ubuntu estables y confiables.

9. Preguntas frecuentes (FAQ)

P1. ¿ntpdate ya no es utilizable en Ubuntu?

No es completamente inutilizable, pero en Ubuntu moderno no se instala por defecto y se clasifica como obsoleto.

Desde Ubuntu 20.04 en adelante, la sincronización automática residente mediante systemd‑timesyncd es el estándar, lo que hace que ntpdate sea innecesario para el funcionamiento normal.

Q2. ¿Cuál es la diferencia entre ntpdate y ntpd?

Sus funciones son distintas:

  • ntpdate: fuerza un ajuste puntual del reloj.
  • ntpd: se ejecuta de forma continua y corrige el tiempo gradualmente.

En los sistemas Ubuntu modernos, systemd‑timesyncd o chrony sustituyen a ntpd.

Q3. ¿Debo usar systemd‑timesyncd o chrony?

Para la mayoría de los entornos, systemd‑timesyncd es suficiente.

chrony resulta más adecuado cuando:

  • La precisión horaria afecta directamente a los requisitos del negocio.
  • El sistema funciona de manera continua durante largos periodos.
  • El desfase horario ocurre con frecuencia en entornos virtuales.

No es necesario elegir chrony simplemente como sustituto de ntpdate.

Q4. ¿Por qué el desfase horario ocurre más a menudo en máquinas virtuales?

Los entornos virtuales son más susceptibles al desfase debido a:

  • El comportamiento de temporización del sistema operativo anfitrión.
  • La variabilidad en la planificación de la CPU.
  • Los ciclos de suspensión y reanudación.

Por ello, activar la sincronización automática residente es esencial.

Q5. La hora es incorrecta aunque systemd‑timesyncd está habilitado

systemd‑timesyncd está diseñado para evitar cambios bruscos del reloj.

Como resultado, la sincronización puede tardar en completarse cuando:

  • El sistema acaba de arrancar.
  • La red acaba de conectarse.
  • El reloj está significativamente desajustado.

En la mayoría de los casos, esperar brevemente resuelve el problema de forma natural.

Q6. ¿Existen situaciones en las que usar ntpdate sea aceptable?

Sí, en escenarios limitados como:

  • Inmediatamente después de la instalación del SO.
  • Cuando el reloj está gravemente desajustado.
  • Entornos de prueba temporales.

Sin embargo, su uso continuo debe evitarse y, posteriormente, debe restaurarse la sincronización automática.

Q7. ¿Cómo puedo desactivar la sincronización horaria si es necesario?

En entornos de prueba especiales, NTP puede desactivarse intencionalmente.

No obstante, esto está pensado para casos de uso excepcionales y no se recomienda para sistemas de producción.

Desactivar la sincronización incrementa el riesgo de:

  • Errores SSL.
  • Inconsistencias en los registros.
  • Fallos en tareas programadas.

Q8. ¿Qué deben recordar los principiantes?

Los principiantes solo necesitan recordar tres puntos:

  1. Ubuntu está diseñado para la sincronización automática del tiempo.
  2. ntpdate ya no es el método predominante.
  3. Siempre verifique primero la sincronización automática.

Con este conocimiento, la confusión alrededor de “ubuntu ntpdate” será rara.

侍エンジニア塾