ntpd 在同步之前分配时间

ntpd distributes time before it has synchronized

我 运行 ntpd on raspberry pi 3. 许多传感器(基于 esp8266)正在从所述服务器获取时间。电源故障后 pi 重新启动并启动 ntpd。传感器请求时间同步,而 ntpd 以错误的时间响应,因为它尚未同步。有没有办法阻止 ntpd 在实际同步之前做出响应? pi 上的日志显示时间不正确,3-5 分钟后跳转到正确的值,因此此行为不是由传感器软件引起的。 ntpd 以 -g 选项启动

我在 ntp irc 频道上进行了讨论。似乎没有办法阻止 ntpd 在同步完成之前响应客户端请求。他们的意见是,如果时钟没有同步,客户端有责任忽略 ntp 数据包。因此,要么必须更改 esp8266 软件,要么使用 iptables 阻止 ntpd 响应。我使用了第二种方法并在 rc.local 中包含以下内容:

sudo iptables -A INPUT -p udp --dport ntp -m iprange --src-range 10.0.200-10.0.0.250 -j DROP
if /usr/sbin/ntp-wait
   then
       /usr/bin/sudo iptables -D INPUT -p udp --dport ntp -m iprange --src-range 10.0.0.200-10.0.0.250 -j DROP
fi