我已经尝试了几个关于如何在 ubuntu 上设置本地 ntp 服务器的指南,但似乎没有一个可以正常工作。由于某种原因,我的服务器在时间上严重漂移,我必须保持它们的时间紧密相连,因为我运行需要这个的数据库。
- 我有 8 个 ubuntu 14.04 LTS 服务器,没有一个可以访问互联网
- 我想在一个(或多个,如果更好的话)服务器上运行一个 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
仍然只有 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 客户端拒绝服务器的时间有关。有没有办法强迫他们改变时间?