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

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

>我有8个ubuntu 14.04 LTS服务器,没有一个可以访问互联网
>我想在服务器上运行ntp服务器(如果更好的话,或者更多)运行ntp服务器,并让所有其他服务器连接到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让他们获取日期并在之后重新启动ntp服务.这成功了.所有服务器在命令完成后直接显示相同的日期.大约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服务器?我怎样才能降低投票时间?看起来我的服务器快速耗尽同步,所以我需要它们再次检索“正确”的时间……

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

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

服务器配置:

# 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 on all clients.仍然只有2个成功的客户和5个拒绝客户.

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

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旨在让一堆机器都拥有相同时间的想法.事实并非如此.它的设计非常谨慎,允许许多机器在正确的时间内拥有最接近的东西,这不是一回事.

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

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

在服务器上

server 127.127.1.0 prefer
fudge  127.127.1.0 stratum 10

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

server 192.168.178.24 iburst
fudge 192.168.178.24  stratum 10

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

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相关文章