
Tengo una Raspberry Pi que uso como sistema de riego. El problema es que no tiene reloj de hardware, por lo que cada vez que se reinicia, la hora del sistema es incorrecta y no puedo configurarlo para que se sincronice automáticamente.
Descubrí que cuando la hora del sistema es incorrecta, las solicitudes de DNS no funcionan, por lo que cada vez que intento enviar una solicitud solo aparece:
[root@alarmpi me]# ntpdate 3.es.pool.ntp.org
Error resolving 3.es.pool.ntp.org: Name or service not known (-2)
12 Aug 15:37:15 ntpdate[2385]: Can't find host 3.es.pool.ntp.org: Name or service not known (-2)
12 Aug 15:37:15 ntpdate[2385]: no servers can be used, exiting
Por cierto, obtengo los mismos errores de conexión si intento usar pacman, wget, python/requests, incluso ping... Así que seguro que es una cuestión de DNS.
[me@alarmpi ~]$ ping google.com
ping: google.com: Name or service not known
Si configuro la hora y la fecha manualmente, vuelve a funcionar, pero vivo a 300 km de donde está esta cosa y no puedo hacerlo manualmente todos los días que hay un corte de energía.
[root@alarmpi me]# timedatectl
Local time: Mon 2019-08-12 15:47:40 CEST
Universal time: Mon 2019-08-12 13:47:40 UTC
RTC time: n/a
Time zone: Europe/Madrid (CEST, +0200)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
[root@alarmpi me]# timedatectl set-ntp false
[root@alarmpi me]# timedatectl set-time "2019-08.13 10:45:45 CEST"
[root@alarmpi me]# ping google.com
PING google.com (172.217.168.174) 56(84) bytes of data.
64 bytes from 172.217.168.174 (172.217.168.174): icmp_seq=1 ttl=54 time=22.7 ms
64 bytes from 172.217.168.174 (172.217.168.174): icmp_seq=2 ttl=54 time=31.6 ms
^C
--- google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 292ms
rtt min/avg/max/mdev = 22.739/27.161/31.583/4.422 ms
[root@alarmpi me]# ntpdate 3.es.pool.ntp.org
13 Aug 10:49:54 ntpdate[2498]: adjust time server 37.139.121.60 offset 0.004894 sec
Entonces estoy un poco perdido aquí. ¿Cómo puedo sincronizar el reloj automáticamente si no me deja conectarme al servicio porque no estoy sincronizado?
Respuesta1
Algunos servidores NTP escuchan directamente las direcciones IP y se anuncian como tales. Por ejemplo,NISTproporciona direcciones IP para cada uno de sus servidores NTP, por lo que puede elegir una y hacerlo ntpdate <IP>
en el inicio. Esto no necesitará resolución DNS y debería funcionar de inmediato.
Alternativamente, también puedes intentar usar el fake-hwclock
paquete, que conserva el tiempo aproximado entre reinicios. No es perfecto y no proporciona la hora exacta, pero podría ser suficiente para resolver los nombres de dominio para NTP.