Raspberry 上的 ArchlinuxArm:无法在启动时同步日期时间

Raspberry 上的 ArchlinuxArm:无法在启动时同步日期时间

我有一台用于灌溉系统的树莓派。问题是它没有硬件时钟,所以每次重启时系统时间都是错误的,而且我无法将其设置为自动同步。

我发现当系统时间错误时,DNS请求不起作用,所以每次我尝试发送请求时我都会得到:

[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

顺便说一句,如果我尝试使用 pacman、wget、python/requests 甚至 ping...,我都会遇到相同的连接错误。所以这肯定是 DNS 的问题。

[me@alarmpi ~]$ ping google.com
ping: google.com: Name or service not known

如果我手动设置时间和日期,它会再次工作,但我住在距离这个东西 300 公里的地方,而且每天停电时我都无法手动进行设置。

[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

所以我有点迷茫了。如果由于不同步而导致我连接服务,我该如何自动同步时钟?

答案1

一些 NTP 服务器直接监听 IP 地址,并向外界公布自己的身份。例如,美国国家标准与技术研究院为每个 NTP 服务器提供 IP,因此您可以选择一个并ntpdate <IP>在初始化时执行。这不需要 DNS 解析,并且应该可以立即工作。

或者,您也可以尝试使用fake-hwclock保留两次重启之间大致时间的软件包。它并不完美,也无法提供准确的时间,但它可能足以解析 NTP 的域名。

相关内容