Skip to content

Configurar la fecha y hora en Ubuntu o Debian (NTP)

Cambiar la fecha y hora en Ubuntu o Debian

Tener la fecha u hora del equipo mal configurada puede darnos muchos quebraderos de cabeza. El más evidente sin duda está relacionado con el acceso a páginas web: mientras la conexión a internet seguirá activa y podremos abrir algunos dominios, si por ejemplo intentamos utilizar el buscador de Google se nos informará de que la fecha del dispositivo no es correcta y no podremos utilizarlo.

Certificado no es válido aún

También tiene un efecto similar en muchos otros certificados, donde veremos mensajes similares al anterior, donde una fecha de sistema incorrecta lleva al sistema a invalidar un certificado por estar fuera de su plazo de vigencia.

Si esto os parece importante no os quiero ni contar lo crítico que resulta para servidores que ofrecen servicios web, de red privada virtual (VPN), servidores de aplicaciones productivas como Jenkins o Bladelogic, donde los servicios se verían interrumpidos fatalmente.

Formas de cambiar la fecha en Debian y Ubuntu

El protocolo NTP (Wikipedia – network time protocol) es un modelo universal que todas las plataformas utilizan convenientemente para sincronizar sus relojes internos con los de otros equipos que actúan como servidores NTP, contando estos últimos con relojes atómicos que los dotan de gran precisión.

Es el caso de los servidores ntp de Google (similares a time.google.com) que muchos usuarios o sysadmin emplean para mantener sus servidores en hora y, a su vez, los clientes dependientes de ellos mediante un «servicio interno de hora de red» que aplicarán a su empresa.

Para equipos cliente y servidores en condiciones normales no será necesario poner en práctica estos trucos, pero si queréis resolver problemas o ajustar su configuración manualmente os vendrán bien.

Sincronizar Linux con los servidores NTP

Podemos tomar dos caminos, dependiendo de si queremos configurar un servidor ntp o sincronizar los clientes con otro servidor ntp. En ambos casos la consola será nuestra mejor aliada.

Antes de realizar esta configuración asegúrate de que la hora del sistema ha sido configurada correctamente -aunque sea manualmente con el comando Date explicado más abajo-.

Instalar servidor ntp

sudo apt install ntp

Ahora habilitaremos el servicio con

sudo systemctl enable ntp

Instalar cliente ntp

Si solo queremos establecer nuestra conexión desde un equipo cualquier a un servidor ntp:

sudo apt install ntpdate

Una vez instalado el paquete correspondiente lo primero que haremos será abrir el archivo de configuración con nuestro editor favorito, en este caso nano:

sudo nano /etc/ntp.conf

Encontraremos un montón de configuraciones, pero para ajustar la hora solo nos interesan de momento los servidores. Añadiremos (o sustituiremos mejor dicho) los servidores existentes por los siguientes:

server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.ntp.pool.org
server 3.pool.ntp.org

O mejor aún, dado que los servidores anteriores son genéricos (y por tanto cambian cada hora aleatoriamente) nos interesará encontrar los de nuestra región específica. Ejemplo para España:

server 0.es.pool.ntp.org
server 0.europe.pool.ntp.org
server 2.europe.pool.ntp.org

Dejaríamos por tanto en el caso de España nuestro archivo configurado con los últimos 3 servidores ntp y no con los 4 primeros, más genéricos.

Ahora simplemente reiniciaremos el servicio NTPd:

sudo service ntp restart

Para actualizar la hora instantáneamente usaremos el siguiente comando:

ntpdate <servidor_ntp>

Si queremos ejecutar ntpdate con el demonio ntp en marcha usaremos el comando:

ntpdate -u pool.ntp.org

Si tenéis problemas con la configuración, utilizad la herramienta ntpq (de «query»). Podéis obtener más información con man ntp.

Aprende más – Comandos de ayuda en Linux

Uso del comando Date de Linux

El comando date de Linux nos permite obtener la fecha y hora actuales del sistema y además realizar modificaciones sobre la misma. Nos resultará útil si lo anterior falla o si nos encontramos en un workstation que no dispone de acceso a internet.

sudo date --set "10 Feb 2018 17:21"

sudo date --set

Ahora reiniciaremos el servicio ntp:

sudo service ntp restart

Verificamos que efectivamente la hora se ha establecido:

Comando date Ubuntu

Ahora vamos a reiniciar el equipo para verificar que el ajuste se mantiene y ejecutamos «date» para obtener la fecha en la consola:

sudo reboot
date

Aquí el resultado:

Usar comando date en Linux

Este método supone una configuración manual del reloj que no sincroniza con servidor alguno. No es lo deseable, pero os servirá si estáis teniendo problemas a la hora de recibir las actualizaciones del protocolo NTP.

Cuando digo que este método no es ideal me refiero  que, por ejemplo, si la batería de la BIOS o del equipo pierde carga podría darse una desincronización de la fecha y hora.

Otras formas de configurar fecha y hora en Ubuntu

1. Conexión vía LAN: cuando tenemos problemas para sincronizar con los servidores NTP en Linux mediante WiFi (un problema más común de lo que parece) una solución podría ser la de conectar nuestro equipo a un puerto físico del router -vía LAN- hasta que consigamos sincronizar.

2. Reconfigurar ajustes de zona horaria: esto podría ser necesario si la configuración de nuestro «Time Zone» ha cambiado por algún motivo. Para volver a asignarla escribiremos lo siguiente:

sudo dpkg-reconfigure tzdata

sudo dpkg-reconfigure tzdata

Si tenemos una RaspBerry Pi también podemos llegar a través del menú de configuración global:

sudo raspi-config

raspi-config sirve para configurar la raspberry pi

Seleccionaremos primero Localisation Options y luego I2 Change Timezone y seguiremos el asistente:

Change timezone raspbian

Como podéis ver existen diferentes formas de cambiar la fecha y hora en Linux, siendo estas aplicables no solo a Debian sino a cualquier sistema derivado del mismo (por ejemplo Raspbian, usado en el ejemplo).

Aprende másCómo realizar benchmarks a tu RaspBerry Pi

Si tenéis alguna sugerencia o corrección será bienvenida, como siempre hazlo saber en los comentarios 😉

deweloper View All

Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.

10 thoughts on “Configurar la fecha y hora en Ubuntu o Debian (NTP) Leave a comment

  1. Las primeras opciones no me dieron solución,… Lo bueno es que das varias opciones de las cuáles me funcionó la última con el comando: sudo dpkg-reconfigure tzdata

    Muchas gracias,

    Dios los siga bendiciendo!!!

    LAGA

  2. Quiero utilizar el servicio NTP para cambiar la hora, pero el archivo ntp.conf no se me descarga a pesar de seguir tus pasos, sabrias decirme a que se debe este problema? Gracias 🙂

    • Hola Jon,
      Si ejecutas el comando ntpd -l ¿qué resultado recibes?

      Podrías intentar probar a crearlo manualmente de la siguiente manera:

      cat > /etc/ntp.conf << "EOF"
      # Europe
      server 0.europe.pool.ntp.org
      driftfile /var/lib/ntp/ntp.drift
      pidfile /var/run/ntpd.pid
      EOF

      De todas formas, ¿qué distribución usas?

      Saludos.

      • Ya he conseguido solucionarlo haciendo un purge y volviendo ha instalar todo. Ahora tengo otro problema… cuando reinicio el servicio no me cambia la hora en el momento, y solo me funciona a veces, sabes por que puede ser?
        Muchas gracias por ayudarme 😉

      • Hola de nuevo Jon, ¿recibes algún código de error al iniciar el servicio o se inicia siempre normalmente? ¿Cómo lo estás haciendo? Por cierto, existe otra alternativa llamada systemd-timesyncd, por si quieres echar un vistazo.
        Por otro lado, prueba lanzando timedatectl status y fíjate en si el valor «NTP syncronized» es on. En algunos sistemas puede ser necesario lanzar el comando timedatectl set-ntp true.
        Saludos.

  3. esto de agregar servidores es caminar por arenas movedizas, en linux lo que a uno le funciona a otro ni le mueve la aguja
    yo buscaría una manera simple de poner el reloj en hora, acaso no es que ya tienes un reloj que funciona?
    Todos los gurúas de linux dicen: para que lo vamos a hacer siemple si lo podemos hacer complicado?
    ademas,
    Como hago yo para reflejar mi omnisciencia con una tontería de dos líneas?

  4. sudo apt install ntpdate
    sudo ntpdate -u zentyal.empresa.cu
    Ĝuste tion, kion mi bezonis. Koran dankon amiko.

Deja un comentario