设备正在从 ntpd 获取时间,但 "ntpq -p" 命令正在超时

Device is getting time from ntpd but "ntpq -p" command is getting timeout

在我们的代码中,我们使用 ntpd 从服务器获取时间并设置时间。执行ntpd命令后,我们运行"ntpq -p"查看服务器偏移量。我们 运行 在不同进程中和完成 ntpq 之后执行 ntpd 命令。

/bin/ntpd -g -c /etc/ntp.conf /bin/ntpq-p

在一个实验室设置路由器中,我们能够观察到设备正在正常获取时间,但是当我们 运行“/bin/ntpq -p”时,它会阻塞一段时间然后返回暂停。我们试图在代码中放弃之前连续持续一个小时。仅在实验室设置中,它会出现问题。在实验室外,设备连接到其他路由器的地方工作正常。当我拿一个在实验室外工作的设备(连接到另一个路由器)时,如果我将该设备连接到实验室路由器,它就会超时。

我认为实验室路由器设置有问题,这就是它无法连接到 ntp 服务器的原因。但我想知道设备是否无法联系 NTP 服务器,设备如何获得正确的时间。设备从 ntp 服务器获取时间但 ntpq -p 返回超时是非常 st运行ge。还有一个 st运行ge 行为是如果我重新启动路由器(设备是 运行),设备工作正常直到设备重新启动,如果我重新启动设备,同样的超时发生。谁能告诉我这种 st运行ge 行为的原因。

您已为您试图从中 ntpq -p 修女的任何主机启用了 noquery 限制。

来自 ntp.org 文档:https://www.eecis.udel.edu/~mills/ntp/html/accopt.html

noquery
    Deny ntpq and ntpdc queries. Time service is not affected.