-1

我正在尝试在无法访问 Internet 的本地网络中配置 NTP 服务器(即使错误,我也需要所有机器都具有相同的时间)。

我已经为客户端和服务器配置了 /etc/ntp.conf 文件。在系统启动时,我运行ntpd -qgx以在启动时同步时间以使同步更快,然后我运行ntpd以继续同步。

但是,有时它会成功同步,而有时它会给我:

select() 返回 -1:系统调用中断

select() 返回 -1:系统调用中断

1 月 1 日 00:02:56 ntpd[2599]:ntpd:未找到服务器

我真的试图找到一种模式来理解它何时失败......但对我来说没有成功,这完全是随机的。

当我尝试使用 google 的 NTP 服务器时,它看起来不错并且每次都确实同步

有没有人遇到过这样的问题?有任何想法吗?

我的 ntp.conf 文件:

服务器 :

#Use the local clock
server 127.127.1.0 
fudge  127.127.1.0 stratum 0

driftfile /var/lib/ntp/drift
broadcastdelay 0.008

# Give localhost full access rights
restrict 127.0.0.1

# Give machines on our network access to query us
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

客户:

#Point to our network's master time server
server 192.168.1.102

#restrict default ignore
restrict 127.0.0.1
restrict 192.168.1.102  mask 255.255.255.255 nomodify notrap noquery

tos orphan 16

driftfile /var/lib/ntp/drift
4

1 回答 1

0

不确定您中断的系统调用,但与您的既定目标相比,这里有一些关于您的配置的注意事项:

  • 看起来您正在尝试将服务器配置为根本没有其他 refclock 或对等点。这几乎肯定不会让您获得任何合理质量的时间。至少,您需要 A) 针对已知的良好同步时钟临时运行候选服务器几天以进行校准,或者 B) 将廉价的 GPS 连接到系统以用作参考时钟。而且,如果您的本地网络规模很大,您可能需要一些内部服务器,而不仅仅是一个(并且要检测一个时钟何时出错,即使是小型网络,您也可能需要一些内部服务器)。

  • 你几乎肯定不需要broadcastdelay. 如果您的配置中缺少其他配置,广播将无法正常工作。虽然我没有经常使用广播,但我在野外的客户中并没有看到对它的太多支持。最好只使用传统的客户端/服务器/对等 NTP。

  • Stratum 16 为非同步时钟保留。如果您为tos orphan配置选择较低的层 - 类似tos orphan 6或其他东西 - 这可能会有所帮助。否则,您将无法获得您正在寻找的孤立行为。

(关于您的其他测试的附带说明:不建议将 Google 的服务器与 ntpd 一起使用,因为它们使用跳跃涂抹。使用NTP 池项目中的对等点可能更适合您的用例。尽管它也无关紧要方式,除非它是在闰第二天(六月或十二月的最后一天,但只有几年)。)

于 2018-04-15T21:23:13.240 回答