我已经尝试了几个关于如何在Ubuntu上设置本地ntp服务器的指南,但是没有一个能够正常工作。 由于某种原因,我的服务器正在大量漂移,我必须保持时间紧密,因为我运行的数据库需要这些。
目前,我的服务器(ip .24)运行这个/etc/ntp.conf:
server 127.127.1.0 prefer fudge 127.127.1.0 stratum 10 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.178.0 mask 255.255.255.0 nomodify notrap broadcast 192.168.178.0
而在“客户”上:
# Point to our network's master time server server 192.168.178.24 iburst fudge 192.168.178.24 stratum 10 restrict default ignore restrict ::1 restrict 127.0.0.1 restrict 192.168.178.24 mask 255.255.255.255 nomodify notrap noquery driftfile /var/lib/ntp/drift minpoll 4 maxpoll 5
注意:我已经使用Multi-Tabbed Putty将下列命令同时发送给所有的ntp客户端。 我已经停止除服务器以外的所有ntp服务,使用sudo ntpdate 192.168.178.24让他们获取date,然后重新启动ntp服务。 这成功了。 命令完成后,所有服务器都显示相同的date。 大约10分钟后,我的服务器显示以下时间:
Fr 30. Sep 11:16:53 CEST 2016 Fr 30. Sep 11:15:33 CEST 2016 (server .24) Fr 30. Sep 11:16:50 CEST 2016 Fr 30. Sep 11:15:33 CEST 2016 Fr 30. Sep 11:17:05 CEST 2016 Fr 30. Sep 11:15:33 CEST 2016 Fr 30. Sep 11:15:33 CEST 2016 Fr 30. Sep 11:15:33 CEST 2016
如何让他们正确地同步到ntp服务器? 我怎样才能降低投票时间? 它看起来像我的服务器快速不同步,所以我需要他们再次检索“正确”的时间…
对于“正确”的时间,我指的是所有服务器的时间都是一样的。 它不一定需要是完全正确的世界时间(如果你这样称呼)。
编辑:我已经尝试了build议的configuration设置。 据我了解,这是我的服务器/客户端configuration应该如何。 与此同时,我已经看到,我的.24服务器实际上正在漂移到一个更糟的时间。 .20服务器是最准确的服务器,现在我正在使用.20服务器来托pipentp服务器。 对困惑感到抱歉。
服务器configuration:
# Use the local clock server 127.127.1.0 prefer fudge 127.127.1.0 driftfile /var/lib/ntp/drift broadcastdelay 0.008 # Give localhost full access rights restrict default # Give machines on our network access to query us restrict 192.168.178.0 mask 255.255.255.0 nomodify notrap broadcast 192.168.178.0
对于客户:
# Point to our network's master time server server 192.168.178.20 iburst restrict default driftfile /var/lib/ntp/drift minpoll 4 maxpoll 5
在服务器上的ntpq -as和ntpq -pe:
ntpq -c as ind assid status conf reach auth condition last_event cnt =========================================================== 1 41906 963a yes yes none sys.peer sys_peer 3 2 41907 8811 yes none none reject mobilize 1 ntpq -c pe remote refid st t when poll reach delay offset jitter ============================================================================== *LOCAL(0) .LOCL. 5 l 60 64 377 0.000 0.000 0.000 192.168.178.0 .BCST. 16 u - 64 0 0.000 0.000 0.000
像这样五次类似的输出(这些服务器及时漂移):
ntpq -c as ind assid status conf reach auth condition last_event cnt =========================================================== 1 62104 9024 yes yes none reject reachable 2 ntpq -c pe remote refid st t when poll reach delay offset jitter ============================================================================== hadoop20.xx LOCAL(0) 6 u 27 64 377 0.151 63591.8 33407.0
对于两个(最有可能的)工作客户:
ntpq -c as ind assid status conf reach auth condition last_event cnt =========================================================== 1 7757 963a yes yes none sys.peer sys_peer 3 ntpq -c pe remote refid st t when poll reach delay offset jitter ============================================================================== *hadoop20.xx LOCAL(0) 6 u 18 64 377 0.183 7.883 3.015
编辑2:
我用sudo service ntp stop , sudo ntpdate 192.168.178.20 ,等待ntpdate完成, sudo service ntp start在所有客户端sudo service ntp start 。 仍然只有2个客户和5个拒绝客户。
拒绝客户显示这个输出。 delay + offset值看起来很高,因为失败的客户端在时间上漂移。 也许他们不信任服务器来更新时间,因为延迟/偏移是如此之高?
ntpq -c as ind assid status conf reach auth condition last_event cnt =========================================================== 1 20981 905a yes yes none reject sys_peer 5 ntpq -c pe remote refid st t when poll reach delay offset jitter ============================================================================== hadoop20.xx LOCAL(0) 6 u 34 64 3 0.166 18665.9 16201.3
我也尝试使用此https://askubuntu.com/a/256004答案,它的作品约30秒,然后状态更改为“拒绝”了! 对于ntpdate -s 192.168.178.20 。 这很可能与ntp客户端拒绝服务器的时间有关。 有没有办法强迫他们改变时间?
不要这样做。 认真。 只是不要。 人们不断提出NTP旨在允许一堆机器都有相同的时间的想法。 事实并非如此。 它的devise非常谨慎,让许多机器都能够在最接近正确的时间做出最接近的事情,这是不一样的。
如果你可以访问一个窗口,你可以build立一个约50英镑的一个半体面的一层服务器 ,或者一个100英镑的好服务器 。 你会做得更好,build立这样的事情,然后指出其他客户端。 正确的时间标记比单纯的自动标记要好得多,尤其是取证。
但是,如果你一定要做你正在做的事情,那么你需要意识到你正在歪曲ntpd,这将意味着理解你在做什么。
在服务器上
server 127.127.1.0 prefer fudge 127.127.1.0 stratum 10
意思是“ 使用本地无序的时钟,就像它是权威的 ”,这是你想要的。 不过,我不确定为什么要强迫它进入第10层。 考虑放弃stratum 10 ,并让司机提供其默认阶层0.在客户端
server 192.168.178.24 iburst fudge 192.168.178.24 stratum 10
根本没有意义。 fudge 127.127.xy被保留用于强制使用各种本地时钟驱动程序。 给它任何其他地址是没有意义的。 从客户端放下fudge线,然后把它们指向服务器。 你也使用一个封闭的networking,所以放下所有的安全的东西,直到你得到这个工作:
restrict default
如果仍然无法正常工作,至less在连续运行10分钟后,我们需要在服务器上和运行不良的客户端上看到ntpq -c as和ntpq -c pe的输出。
编辑 :你在下面的评论中写道:“ 我认为偏移/抖动是非常高的,因为失败的客户端在时间上漂移 ”。
我想你可能是对的。 这个博客build议他也有相同的经历:客户端时钟非常糟糕,以致于当地ntpd认为服务器不可靠。 他写了
巨大的抖动的原因终于看起来很清楚! 我们的时钟漂移速度很快,通过我们的几个测量,偏移量会上升几秒钟
鉴于这是你的客户的时间最快closures,无法同步(标记服务器“拒绝”),我认为你看到了同样的效果。 他的解决scheme是使用adjtimex手动调整内核时钟(调整tick值),直到系统时钟不那么任性,此时ntpd有机会将服务器识别为正常,并同步到该时间。 您应该首先尝试一下最坏的客户端,看看是否有帮助。