在朋友圈求助的NTP问题~

本文介绍了在不连接互联网的情况下,通过自定义NTP配置实现两台设备间时间同步的方法。配置文件涉及限制、日志、服务器设置等,并提供了调试和查看日志的命令。该配置在特定场景下解决了开机时间偏差问题,确保数据同步时的时间一致性。
摘要由CSDN通过智能技术生成

之前朋友圈求助的问题

最后是我一个朋友尝试了一天的配置「这个配置尝试的过程需要技术基础,但是不管如何的技术基础都是需要去不断的尝试的」,终于找到了方法,所以~

我给他们送了秋天的第一杯奶茶~「是他们是因为他们都是一群我很喜欢的同事」

具体配置如下:

不夸张的说,你要是能从网上找到和这个一样的配置,算我输,这个配置实现的功能如我上面所说,可以在host不连接网络的情况下,也不必等待5~10分钟。

所以我才说了,这个配置值钱。

server 127.127.1.0 prefer minpoll 0
fudge 127.127.1.0 stratum 2        
driftfile /tmp/ntp.drift
#restrict default nomodify notrust
restrict default nomodify nopeer noquery limited kod
restrict 127.0.0.0/8
disable auth
logfile /tmp/ntp.log

先说下我的项目需求,我的项目不是一个连接互联网的项目,我们有两个设备,一个设备做主,另一个设备做从,两个设备的开机时间会存在偏差,但是他们开机之后,就需要互相同步数据,而且在同步数据的时候,需要用时间来矫正他们两个的数据。

所以,我需要NTP来保证,两个设备同一时刻的时间是完全相同的。

host 端的ntp配置,正常情况下,如果我们开启了ntpd这个功能,默认会有一个ntp.conf的配置文件,如果什么都不修改,应该就可以实现时间同步的功能。

slave 端使用ntpdate

配置文件的目录

/etc/ntp.conf

如果我们修改配置文件后,想使用自己的配置文件来让自己的配置生效,可以使用 -c 这个选项

如:

ntpd -c /userdata/ntp.conf

还有,我们有时候需要调试查看 ntpd 的输出,可以使用下面的命令,这个命令在ntpdate 获取一次时间后,就会退出,但是可以清晰的看到ntpd启动的日志

ntpd -gq -c /etc/ntp.conf
13 Aug 03:37:54 ntpd[16816]: ntpd 4.2.8p10@1.3728-o Mon Aug  9 11:07:38 
UTC 2021 (1): Starting
13 Aug 03:37:54 ntpd[16816]: Command line: ntpd -gq -c /etc/ntp.conf    
13 Aug 03:37:54 ntpd[16816]: proto: precision = 0.583 usec (-21)
13 Aug 03:37:54 ntpd[16816]: minpoll: provided value (0) is out of range
 [3-255])
13 Aug 03:37:54 ntpd[16816]: restrict: ignoring line 7, address/host '12
7.0.0.0/8' unusable.
13 Aug 03:37:54 ntpd[16816]: switching logging to file /tmp/ntp.log     
13 Aug 03:37:54 ntpd[16816]: Listen and drop on 0 v6wildcard [::]:123   
13 Aug 03:37:54 ntpd[16816]: Listen and drop on 1 v4wildcard 0.0.0.0:123
13 Aug 03:37:54 ntpd[16816]: Listen normally on 2 lo 127.0.0.1:123      
13 Aug 03:37:54 ntpd[16816]: Listen normally on 3 eth0 192.168.9.100:123
13 Aug 03:37:54 ntpd[16816]: Listen normally on 4 lo [::1]:123
13 Aug 03:37:54 ntpd[16816]: Listen normally on 5 eth0 [fe80::7c06:50ff:
feb5:8c07%2]:123
13 Aug 03:37:54 ntpd[16816]: Listening on routing socket on fd #22 for i
nterface updates
13 Aug 03:37:55 ntpd[16816]: ntpd: time slew +0.000000 s
ntpd: time slew +0.000000s

如果配置有问题,可以在日志里面可以看到

一个比较简单的配置文件说明,对新手来说还是比较友好的

driftfile /var/lib/ntp/drift
##下面两行默认是拒绝所有来源的任何访问
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
#开放本机的任何访问
restrict 127.0.0.1
restrict -6 ::1
# 允许内网其他机器同步时间(允许192.168.1.0/24 网段主机进行时间同步)
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
#指定ntp服务器地址
server 192.168.33.44
#允许上层时间服务器主动修改本机时间
restrict 192.168.33.44 nomodify notrap noquery
#外部时间服务器不可用时,以本地时间作为时间服务
server  127.127.1.0
fudge   127.127.1.0 stratum 10
##下面两行为配置文件默认开启
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

再说个事情,如果使用NTP的话,可以自己实现一个小程序实现这个功能,因为我以为这个功能实现不了,我确实自己写了程序实现。测试了下还挺稳定的,后面发现我朋友调试出来后还是弃用了。

参考博客:

https://www.cnblogs.com/shanhua-fu/p/9281040.html

国内的博客还是逊色一些,看看老外的技术文档

https://serverfault.com/questions/904150/how-to-force-locally-isolated-ntpd-update-time

https://docs.ntpsec.org/latest/ntp_conf.html

https://blog.csdn.net/cx55887/article/details/83868660


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值