在我们的代码中,我们使用 ntpd 从服务器获取时间并设置时间。执行 ntpd 命令后,我们正在运行“ntpq -p”来检查服务器偏移量。我们在不同进程中运行 ntpd 的命令,并在完成该 ntpq 之后。
/bin/ntpd -g -c /etc/ntp.conf /bin/ntpq -p
在一个实验室设置路由器中,我们能够观察到该设备正在正确获取时间,但是当我们运行“/bin/ntpq -p”时,它会阻塞一段时间并且它正在返回超时。在放弃代码之前,我们正在尝试连续一小时。仅在实验室设置中,它会出现问题。在实验室外,设备连接到其他路由器的地方工作正常。当我拿一个在实验室外工作的设备(连接到另一个路由器)并且如果我将设备连接到实验室路由器时,它会超时。
我认为实验室路由器设置有问题,这就是它无法连接到 ntp 服务器的原因。但我想知道设备是否无法联系 NTP 服务器,设备如何获得正确的时间。设备从 ntp 服务器获取时间但 ntpq -p 返回超时,这很奇怪。另一个奇怪的行为是,如果我重新启动路由器(设备正在运行),设备工作正常,直到设备重新启动,如果我重新启动设备,也会发生相同的超时。谁能告诉我这种奇怪行为的原因。