首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NTP使Ubuntu时钟与另一台计算机保持同步

使用NTP使Ubuntu时钟与另一台计算机保持同步
EN

Server Fault用户
提问于 2020-03-11 13:53:44
回答 2查看 1.5K关注 0票数 0

目标

为了使机器A(Ubuntu18.04)的时钟与机器B的时钟(Ubuntu16.04在运行NTP服务器的本地网络上)同步,时间大约是。比现实世界提前10分钟)。

我的研究

我对NTP很陌生,对可用的包和命令有些困惑: ntpd、ntpq、timesyncd、timedatectl等等。显然,其中有些交互,另一些相互冲突。如果你能帮我清理一下,我将不胜感激。

我已经尝试过的

在机器A上:

代码语言:javascript
复制
$ sudo apt-get install ntp

ntp.conf:

代码语言:javascript
复制
server 192.168.12.20 # NTP server (machine B)
server 127.127.1.0
fudge 127.127.1.0 stratum 10

driftfile /var/lib/ntp/ntp.drift

leapfile /usr/share/zoneinfo/leap-seconds.list

然后跑:

代码语言:javascript
复制
$ sudo service ntp stop
$ sudo ntpd -gq
11 Mar 14:35:50 ntpd[11344]: ntpd 4.2.8p10@1.3728-o (1): Starting
11 Mar 14:35:50 ntpd[11344]: Command line: ntpd -gq
11 Mar 14:35:50 ntpd[11344]: proto: precision = 0.128 usec (-23)
11 Mar 14:35:50 ntpd[11344]: leapsecond file ('/usr/share/zoneinfo/leap-seconds.list'): good hash signature
11 Mar 14:35:50 ntpd[11344]: leapsecond file ('/usr/share/zoneinfo/leap-seconds.list'): loaded, expire=2019-12-28T00:00:00Z last=2017-01-01T00:00:00Z ofs=37
11 Mar 14:35:50 ntpd[11344]: leapsecond file ('/usr/share/zoneinfo/leap-seconds.list'): expired less than 75 days ago
11 Mar 14:35:50 ntpd[11344]: Listen and drop on 0 v6wildcard [::]:123
11 Mar 14:35:50 ntpd[11344]: Listen and drop on 1 v4wildcard 0.0.0.0:123
11 Mar 14:35:50 ntpd[11344]: Listen normally on 2 lo 127.0.0.1:123
11 Mar 14:35:50 ntpd[11344]: Listen normally on 3 eth0 192.168.12.193:123
11 Mar 14:35:50 ntpd[11344]: Listen normally on 4 wlan0 10.1.11.171:123
11 Mar 14:35:50 ntpd[11344]: Listen normally on 5 lo [::1]:123
11 Mar 14:35:50 ntpd[11344]: Listen normally on 6 eth0 [fd06:b21a:9c69::242]:123
11 Mar 14:35:50 ntpd[11344]: Listen normally on 7 eth0 [fd06:b21a:9c69:0:3411:70bb:5786:e9f9]:123
11 Mar 14:35:50 ntpd[11344]: Listen normally on 8 eth0 [fd06:b21a:9c69:0:f474:e414:7210:dc9e]:123
11 Mar 14:35:50 ntpd[11344]: Listen normally on 9 eth0 [fe80::37ed:4c5:7941:3e6%3]:123
11 Mar 14:35:50 ntpd[11344]: Listen normally on 10 wlan0 [fe80::2e44:748b:5ae0:f2dd%7]:123
11 Mar 14:35:50 ntpd[11344]: Listening on routing socket on fd #27 for interface updates
11 Mar 14:46:14 ntpd[11344]: ntpd: time set +617.018832 s
ntpd: time set +617.018832s

此时,将日期正确地设置为机器A的日期:

代码语言:javascript
复制
$ date
Wed Mar 11 14:46:33 CET 2020

然而,在再次启动服务之后..。

代码语言:javascript
复制
$ sudo service ntp start

几秒钟后,时钟又恢复了:

代码语言:javascript
复制
$ date
Wed Mar 11 14:36:41 CET 2020

对等点(显示出一个意想不到的188。(知识产权):

代码语言:javascript
复制
$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*_gateway        188.67.52.171    4 u  131  128  377   10.171  -11.526  16.139
EN

回答 2

Server Fault用户

发布于 2020-03-11 18:04:20

这个偏移表示您与遥控器不同的时间不到12 ms。您的NTP服务器没有提供您想要的时间,或者您正在同步其他东西,而不是您想要的。

Refid是对等方用作引用的代码。IP地址是指NTP服务器。您不拥有的IP可能是来自NTP池或其他的公共NTP服务。检查主机192.168.12.20和所有NTP服务器上的NTP配置。

如果你打算与“现实世界”时间保持10分钟的间隔,你就不能这样做,也不能和互联网时间同步。相反,用自定义时区或libfaketime之类的shims来伪造应用程序获取的时间。

127.127.1.0在现代ntpd中没有任何用途。绝对不是在不服务时间的客户端配置中。移除这两条线。

在ntpd建立漂移之后,即使没有服务器,它也会继续遵守时钟规则。添加不受约束的本地时钟断言本地时钟有利于服务时间,如果与所需时间相距10分钟是不准确的,则本地时钟不会从客户端主机提供服务时间。将此功能视为更适合于插入参考时钟的NTP设备。不是商品服务器。

来自NTP支持wiki的关于不受约束的本地时钟的引用:

不受约束的本地时钟一般不应该再使用了。ntp-4.2.2及更高版本的用户应该将OrphanMode视为保持孤立的服务器组同步的一种方法。不受约束的本地时钟是不是是叶节点(即仅客户端) ntpd实例的备份。

只有一个NTP服务器无法更正伪造代码错误。理想情况下,至少部署4,并在所有客户端上使用它们。

时间同步守护进程之间存在冲突。有两件事是为了以不同的方式来设定时钟是不好的。只安装和使用一个时间,ntpd,systemd-timesyncd。一些系统单元(至少是Red的)防止两者同时运行,但不依赖于此。

票数 3
EN

Server Fault用户

发布于 2020-03-13 13:11:08

最后,我使用了ntpdatechrony

代码语言:javascript
复制
sudo apt-get install -y ntpdate chrony

首先,我使用ntpdate运行即时更新:

代码语言:javascript
复制
sudo ntpdate 192.168.12.20

然后在/etc/chrony/chrony.conf中配置服务器

代码语言:javascript
复制
#pool ntp.ubuntu.com        iburst maxsources 4
#pool 0.ubuntu.pool.ntp.org iburst maxsources 1
#pool 1.ubuntu.pool.ntp.org iburst maxsources 1
#pool 2.ubuntu.pool.ntp.org iburst maxsources 2

server 192.168.12.20 minpoll 0 maxpoll 5 maxdelay .05

并启动chrony守护进程:

代码语言:javascript
复制
/etc/init.d/chrony start

它似乎运行良好,运行的偏移不到1毫秒。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1006509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档