为了使机器A(Ubuntu18.04)的时钟与机器B的时钟(Ubuntu16.04在运行NTP服务器的本地网络上)同步,时间大约是。比现实世界提前10分钟)。
我对NTP很陌生,对可用的包和命令有些困惑: ntpd、ntpq、timesyncd、timedatectl等等。显然,其中有些交互,另一些相互冲突。如果你能帮我清理一下,我将不胜感激。
在机器A上:
$ sudo apt-get install ntpntp.conf:
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然后跑:
$ 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的日期:
$ date
Wed Mar 11 14:46:33 CET 2020然而,在再次启动服务之后..。
$ sudo service ntp start几秒钟后,时钟又恢复了:
$ date
Wed Mar 11 14:36:41 CET 2020对等点(显示出一个意想不到的188。(知识产权):
$ 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发布于 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的)防止两者同时运行,但不依赖于此。
发布于 2020-03-13 13:11:08
最后,我使用了ntpdate和chrony。
sudo apt-get install -y ntpdate chrony首先,我使用ntpdate运行即时更新:
sudo ntpdate 192.168.12.20然后在/etc/chrony/chrony.conf中配置服务器
#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守护进程:
/etc/init.d/chrony start它似乎运行良好,运行的偏移不到1毫秒。
https://serverfault.com/questions/1006509
复制相似问题