Configurar la fecha y hora en Ubuntu o Debian (NTP)
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.
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"
Ahora reiniciaremos el servicio ntp:
sudo service ntp restart
Verificamos que efectivamente la hora se ha establecido:
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:
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
Si tenemos una RaspBerry Pi también podemos llegar a través del menú de configuración global:
sudo raspi-config
Seleccionaremos primero Localisation Options y luego I2 Change Timezone y seguiremos el asistente:
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ás – Cómo realizar benchmarks a tu RaspBerry Pi
Si tenéis alguna sugerencia o corrección será bienvenida, como siempre hazlo saber en los comentarios 😉
Categories
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.
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
Genial, me alegro de que te sirva. Gracias por tus palabras!
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.
Mil gracias. funciono perfecto.
Genial! Saludos
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?
sudo apt install ntpdate
sudo ntpdate -u zentyal.empresa.cu
Ĝuste tion, kion mi bezonis. Koran dankon amiko.