我已经提到ntpdate -d 服务器将 Strata 降得太高。这是一个类似但又不同的问题。
我有两个设备。
- 飞思卡尔 ARM 板(NTP 服务器)
- Tinker 板(客户端)
在已经安装NTP服务器的Freescale主板上如下图所示ntp.conf
:
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 8
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys
这时客户端没有安装NTP
服务端,只用于ntpdate
与服务端同步一次。
问题如下:
- 启动飞思卡尔板 NTP 服务器
$ ntpd
。 - 在客户端同步
$ sudo ntpdate -u -d 192.168.1.10
- 收到错误
192.168.1.10: Server dropped: strata too high
- 等几分钟...
- 再次同步
$ sudo ntpdate -u -d 192.168.1.10
- 这次没有错误
一旦我$ killall ntpd
重新启动$ ntpd
服务器,客户端就需要等待很长时间$ sudo ntpdate
。
据我了解,ntpdate
是用来强制同步时间的。为什么要花这么长时间?而且错误strata too high
与时间完全无关。
答案1
ntpdate
不同步时间,只会步进一次时间。它还将退役,转而采用ntpd
和sntp
命令。不要在客户端使用它。相反,配置一个完整的 NTP 实现,如 ntpd 或 chrony。
不守纪律的本地时钟,LCL
refid 并配置为与 CIDR 127.127.1.0/24 匹配的服务器,不应被任何人使用。根据 NTP wiki:
一般情况下不应再使用无纪律的本地时钟。
它最初设计用于 ntpd 必须能够为其他人提供时间,即使没有实时源可访问。有关非规范本地时钟的其他应用程序的信息,请参阅分发文档。
ntp-4.2.2 及更高版本的用户应考虑使用 OrphanMode 作为保持隔离的服务器组同步的一种方式。
无纪律的本地时钟不是叶节点(即仅客户端)ntpd 实例的备份。
在服务器上,用更好的参考时钟替换服务器线:互联网上的 NTP、带有无线电的时间设备或良好的振荡器。
如果必须运行没有可靠参考时钟的配置,请使用孤儿模式. 设置一个低于LCL
您在网络上配置的层阈值,但高于合适的互联网源,通常为 1 到 3。
tos orphan 6