有没有办法让ntpd反复查询ntp.conf文件中给出的服务器地址?

Arp*_*ith 2 linux ntp ntpd

假设机器有一个 ntp.conf 文件,如下所示:

漂移文件< path-to-drift-file>
服务器< NTP-server-1>
服务器< NTP-server-2>
服务器< NTP-server-2>

出于某种原因,假设 NTP 服务器没有在第一次查询所有服务器时运行。我们可以让 ntpd 重复查询这些来源吗(即再次在循环中查询 server-1 到 server-3)?我们该怎么做呢?

编辑:有什么方法可以从机器的 ntp.conf 中给出的服务器列表中定量确定哪个服务器导致了实际时间同步?

Aar*_*ley 6

所有定义的服务器/etc/ntp.conf都用于同步时间。没有必要让它在服务器中“循环”,因为算法已经处理了多个源。

ntpd 程序通过以指定的轮询间隔与一台或多台配置的服务器交换消息来运行。

来自: man ntpd

您可以通过ntpq -p在命令行上执行以显示您的同行及其状态来查看这一点。

您可能会看到如下所示的输出:

  remote           refid      st when poll reach   delay  offset    disp
========================================================================
+128.4.2.6    132.249.16.1     2  131  256  373     9.89   16.28   23.25
*128.4.1.20   .WWVB.           1  137  256  377   280.62   21.74   20.23
-128.8.2.88   128.8.10.1       2   49  128  376   294.14    5.94   17.47
+128.4.2.17   .WWVB.           1  173  256  377   279.95   20.56   16.40
Run Code Online (Sandbox Code Playgroud)

手册页中也解释了输出。但是,随着时间的推移,我收集了一些笔记:

远程:ntp.conf 文件中指定的对等点
* = 当前时间源
# = 选择的源,距离超过最大值
o = 选择的源,使用每秒脉冲 (PPS)
+ = 选择的源,包含在最终集合中
x = 源错误代码
. = 从候选列表末尾选择的
源 - = 聚类算法丢弃的
源空白 = 源丢弃的高层,失败的理智

refid : 远程源的同步源

:源的层级

t:可用的类型
l = 本地(例如 GPS、WWVB)
u = 单播(最常见)
m = 多播
b = 广播
- = netaddr

when:自上次响应以来经过的秒数

poll : 源的轮询间隔,以秒为单位

到达: 表示到达源的成功/失败,377 次所有尝试都成功

delay:表示接收回复的往返时间,以毫秒为单位

offset:表示客户端服务器和源之间的时间差,以毫秒为单位

disp/jitter : 表示两个样本之间的差异,以毫秒为单位

最后,回答最后一个问题;

有什么方法可以从机器中ntp.conf中给出的服务器列表中定量确定哪个服务器导致了实际时间同步?

带 (*) 的主机是您当前选择的时间源。这可以在轮询期间改变。