在朋友圈求助的NTP问题~

共 4178字,需浏览 9分钟

 ·

2021-08-20 16:55

之前朋友圈求助的问题



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

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



具体配置如下:


不夸张的说,你要是能从网上找到和这个一样的配置,算我输,这个配置实现的功能如我上面所说,可以在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语言
我的知识小密圈
浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报