假设机器有一个ntp.conf文件,如下所示:
漂移文件<path-to-drift-file>
服务器<NTP-server-1>
服务器<NTP-server-2>
服务器<NTP-server-2>
出于某种原因,让我们假设NTP服务器不是在对所有服务器的第一个查询时运行的。我们是否可以让ntpd再次查询这些源(即在循环中再次查询server-1到server-3 )?我们该怎么做?
编辑:是否有任何方法可以定量地确定是哪个服务器导致了计算机中ntp.conf中给出的服务器列表中的实际时间同步?
发布于 2012-10-04 11:37:28
/etc/ntp.conf中所有定义的服务器都用于同步时间。没有必要让它在服务器上“循环”,因为算法已经处理了多个源。
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输出也在手册页中解释。但是,随着时间的推移,我收集了一些笔记:
远程: ntp.conf文件中指定的对等点( *=当前时间source #=源选择,距离超过最大value o=源选择,脉冲每秒(PPS) used +=源选择,包括在最终set x=源假ticker中)。=从候选list的末尾选择的源-=源algorithm空白丢弃的源=源丢弃的高层、失败的清醒重定向:远程源的同步源层:源t的层级别:可用的 L=本地(例如GPS、algorithm) u=单播(最常见的) m= multicast b= broadcast -= netaddr时:自上次响应投票后通过的秒数:轮询间隔,秒,对于源到达:表示成功/失败到达源,377次尝试成功延迟:指示往返时间,以毫秒为单位,接收应答偏移量:指示客户机服务器与源磁盘/抖动之间的时间差(毫秒):指示两个样本之间的差异,以毫秒为单位。
最后,回答最后一个问题;
是否有任何方法可以定量地确定是哪个服务器导致了计算机中ntp.conf中给出的服务器列表中的实际时间同步?
使用(*)指示的主机是当前选择的时间源。在轮询期间,这种情况可能会发生变化。
发布于 2012-10-03 19:24:20
Ntpd将在启动时查询所有已配置的服务器,并选择具有最低层的服务器。如果该服务器失败,它将自动切换到下一个服务器。那你为什么要改变呢?
维基百科:网络时间协议-时钟层
编辑:在检查了一下之后,我发现了一些关于iburst参数的信息,这实际上是为了加速时钟同步。这里的区别是,当ntpd-服务器无法到达任何服务器时,它将使ntpd-服务器退出。您可以使用这种方法来确保ntpd的实例在任何时候都在运行,例如,通过使用看门狗或由cron不时运行的简单脚本。
不幸的是,当没有服务器可访问时,我无法知道ntpd的默认行为是什么;尽管我发现了许多关于服务器在DNS (例如这只虫子)或接口会下降中不解析时将如何运行的引用。
https://serverfault.com/questions/434563
复制相似问题