如何在ubuntu上设置没有Internet访问权限的本地ntp服务器?

前端之家收集整理的这篇文章主要介绍了如何在ubuntu上设置没有Internet访问权限的本地ntp服务器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经尝试了几个关于如何在ubuntu上设置本地ntp服务器的指南,但似乎都没有正常工作.由于某种原因,我的服务器在时间上大量漂移,我必须保持时间紧密,因为我运行需要这个的数据库.

>我有8个ubuntu 14.04 LTS服务器,没有一个可以访问互联网
>我想在服务器上运行ntp服务器(如果更好的话,或者更多)运行ntp服务器,并让所有其他服务器连接到ntp服务器以设置时间

目前,我的服务器(ip .24)运行此/etc/ntp.conf:

  1. server 127.127.1.0 prefer
  2. fudge 127.127.1.0 stratum 10
  3. driftfile /var/lib/ntp/drift
  4. broadcastdelay 0.008
  5.  
  6. # Give localhost full access rights
  7. restrict 127.0.0.1
  8.  
  9. # Give machines on our network access to query us
  10. restrict 192.168.178.0 mask 255.255.255.0 nomodify notrap
  11.  
  12. broadcast 192.168.178.0

在“客户”上:

  1. # Point to our network's master time server
  2. server 192.168.178.24 iburst
  3. fudge 192.168.178.24 stratum 10
  4.  
  5. restrict default ignore
  6. restrict ::1
  7. restrict 127.0.0.1
  8. restrict 192.168.178.24 mask 255.255.255.255 nomodify notrap noquery
  9.  
  10. driftfile /var/lib/ntp/drift
  11.  
  12. minpoll 4
  13. maxpoll 5

注意:我使用Multi-Tabbed Putty同时向所有ntp客户端发送以下命令.
我已经停止了除服务器之外的所有ntp服务,使用sudo ntpdate 192.168.178.24让他们获取日期并在之后重新启动ntp服务.这成功了.所有服务器在命令完成后直接显示相同的日期.大约10分钟后,我的服务器显示以下时间:

  1. Fr 30. Sep 11:16:53 CEST 2016
  2. Fr 30. Sep 11:15:33 CEST 2016 (server .24)
  3. Fr 30. Sep 11:16:50 CEST 2016
  4. Fr 30. Sep 11:15:33 CEST 2016
  5. Fr 30. Sep 11:17:05 CEST 2016
  6. Fr 30. Sep 11:15:33 CEST 2016
  7. Fr 30. Sep 11:15:33 CEST 2016
  8. Fr 30. Sep 11:15:33 CEST 2016

如何让它们正确同步到ntp服务器?我怎样才能降低投票时间?看起来我的服务器快速耗尽同步,所以我需要它们再次检索“正确”的时间……

“正确”时间我指的是所有服务器的时间相同.它不一定需要是完全正确的世界时间(如果你这样称呼它).

编辑:
我尝试过建议的配置设置.据我所知,这是我的服务器/客户端配置应该是这样的.与此同时,我已经看到我的.24服务器实际上正在漂移到更糟糕的时间. .20服务器是最准确的服务器,我现在使用.20服务器来托管ntp服务器.对困惑感到抱歉.

服务器配置:

  1. # Use the local clock
  2. server 127.127.1.0 prefer
  3. fudge 127.127.1.0
  4. driftfile /var/lib/ntp/drift
  5. broadcastdelay 0.008
  6.  
  7. # Give localhost full access rights
  8. restrict default
  9.  
  10. # Give machines on our network access to query us
  11. restrict 192.168.178.0 mask 255.255.255.0 nomodify notrap
  12.  
  13. broadcast 192.168.178.0

对于客户:

  1. # Point to our network's master time server
  2. server 192.168.178.20 iburst
  3.  
  4. restrict default
  5.  
  6. driftfile /var/lib/ntp/drift
  7.  
  8. minpoll 4
  9. maxpoll 5

服务器上的ntpq -as和ntpq -pe:

  1. ntpq -c as
  2. ind assid status conf reach auth condition last_event cnt
  3. ===========================================================
  4. 1 41906 963a yes yes none sys.peer sys_peer 3
  5. 2 41907 8811 yes none none reject mobilize 1
  6.  
  7. ntpq -c pe
  8. remote refid st t when poll reach delay offset jitter
  9. ==============================================================================
  10. *LOCAL(0) .LOCL. 5 l 60 64 377 0.000 0.000 0.000
  11. 192.168.178.0 .BCST. 16 u - 64 0 0.000 0.000 0.000

像这样五倍的类似输出(这些服务器随时间漂移):

  1. ntpq -c as
  2. ind assid status conf reach auth condition last_event cnt
  3. ===========================================================
  4. 1 62104 9024 yes yes none reject reachable 2
  5.  
  6.  
  7. ntpq -c pe
  8. remote refid st t when poll reach delay offset jitter
  9. ==============================================================================
  10. hadoop20.xx LOCAL(0) 6 u 27 64 377 0.151 63591.8 33407.0

对于两个(最有可能的?)工作客户:

  1. ntpq -c as
  2. ind assid status conf reach auth condition last_event cnt
  3. ===========================================================
  4. 1 7757 963a yes yes none sys.peer sys_peer 3
  5.  
  6. ntpq -c pe
  7. remote refid st t when poll reach delay offset jitter
  8. ==============================================================================
  9. *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 on all clients.仍然只有2个成功的客户和5个拒绝客户.

拒绝客户端显示输出.延迟偏移值看起来很高,因为失败的客户端会随时间漂移.也许他们不相信服务器更新时间,因为延迟/偏移是如此之高?

  1. ntpq -c as
  2. ind assid status conf reach auth condition last_event cnt
  3. ===========================================================
  4. 1 20981 905a yes yes none reject sys_peer 5
  5.  
  6. ntpq -c pe
  7. remote refid st t when poll reach delay offset jitter
  8. ==============================================================================
  9. 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旨在让一堆机器都拥有相同时间的想法.事实并非如此.它的设计非常谨慎,允许许多机器在正确的时间内拥有最接近的东西,这不是一回事.

如果你可以访问一个窗口,你可以建立一个half-decent stratum-1 server约50英镑,或一个好的一个100英镑.你可以做更好的事情来构建类似的东西,然后指向其他客户端.正确的时间戳比单纯的时间戳要好得多,尤其是对于取证.

但如果你绝对必须做你正在做的事情,那么你需要意识到你正在歪曲ntpd,这将意味着理解你正在做的事情.

在服务器上

  1. server 127.127.1.0 prefer
  2. fudge 127.127.1.0 stratum 10

意思是“使用当地的无纪律时钟,就好像它是权威的”,这就是你想要的.不过,我不确定你为什么要强迫它进入第10层;考虑删除第10层,并让驱动程序提供其默认层数为0.在客户端上

  1. server 192.168.178.24 iburst
  2. fudge 192.168.178.24 stratum 10

毫无意义.软糖127.127.x.y保留用于强制使用各种本地时钟驱动程序.给它任何其他地址是没有意义的.从客户端删除软糖线,然后将它们指向服务器.你也使用一个封闭的网络,所以放弃所有安全的东西,直到你得到这个工作:

  1. restrict default

如果这似乎仍然不起作用,我们需要在服务器和行为不良的客户端上看到ntpq -c as和ntpq -c pe的输出,在至少十分钟的不间断运行之后.

编辑:您在下面的评论中写道:“我认为偏移/抖动非常高,因为失败的客户端
时间漂移“.

我想你可能是对的. This chap’s blog建议他有相同的经验:客户端时钟非常糟糕,以至于它欺骗了当地的ntpd,认为服务器不可靠.他写了

the reason for the huge jitter finally seems clear! Our clock drifts
so fast that the offset will go up by several seconds through our few
measurements

鉴于你的客户的时间最快就会失去同步(将服务器标记为“拒绝”),我认为你看到了同样的效果.他的解决方案是使用adjtimex手动调整内核时钟(调整tick值),直到系统时钟不那么任性为止,此时ntpd有机会将服务器识别为OK,并同步到它.你应该首先尝试对最坏的客户进行尝试,看看它是否有帮助.

猜你在找的Ubuntu相关文章