在我们的代码中,我们使用ntpd从服务器获取时间并设置时间。执行ntpd命令后,我们正在运行" ntpq -p"检查服务器偏移量。我们在不同的过程中运行ntpd的命令,并在完成ntpq之后运行。
/ bin / ntpd -g -c /etc/ntp.conf / bin / ntpq -p
在一个实验室设置路由器中,我们能够观察到设备正常运行时间,但是当我们运行" / bin / ntpq -p"时,它会阻塞一段时间并且正在返回超时。在放弃代码之前,我们一直试着连续一个小时。仅在实验室设置中,它给出了问题。在实验室外,设备连接到其他路由器的工作正常。当我拿出在实验室外工作的设备(连接到另一台路由器)并且如果我将设备连接到实验室路由器时,它会超时。
我认为实验室路由器设置存在一些问题,这就是它无法连接到ntp服务器的原因。但我想知道设备是否无法联系NTP服务器,设备如何获得适当的时间。设备从ntp服务器获取时间是非常奇怪的,但是ntpq -p正在返回超时。还有一个奇怪的行为是,如果我重新启动路由器(设备正在运行),设备工作正常,直到设备重新启动,如果我重新启动设备,则会发生相同的超时。任何人都可以告诉我这种奇怪行为的原因。
答案 0 :(得分:1)
您为尝试修改noquery
的任何主机启用了ntpq -p
限制。
来自ntp.org docs:https://www.eecis.udel.edu/~mills/ntp/html/accopt.html
noquery
Deny ntpq and ntpdc queries. Time service is not affected.