我的服务器是托管在IDC中的,因为在这个IDC服务器上不能访问Internet,所以我可以使用Internet NTP服务器。但是IDC服务提供商有一个原子钟,所以我可以与原子钟同步时间。
原子钟的IP是192.168.90.118
,服务器的IP是192.168.90.18
。我的服务器操作系统是Debian 8.11
,我通过sudo apt install ntp
安装ntp,ntpd的版本是4.2.6p5
。
服务器的/etc/ntp.conf
内容如下所示:
driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 192.168.90.118 version 3
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1
我尝试在下面的命令中执行与原子钟同步的时间,它显示“没有找到服务器”
sudo service ntp stop
sudo ntpd -gq
我试着平移原子钟的IP地址,它是可达的,而且延迟也很低。我试图用tcp线头在原子钟和服务器之间捕获一些数据包,它如下所示:
sudo tcpdump -vvv -ni eth0 port 123
16:43:44.802334 IP (tos 0x0, ttl 126, id 12371, offset 0, flags [none], proto UDP (17), lenth 76)
192.168.90.118.123 > 192.168.90.18.123: [udp sum ok]NTPv3, lenth 48
Server, Leap indicator: (0), Stratum 6 (secondary reference), poll 6 (64s), pricision -6
Root Delay: 0.000000, Root disprsion: 10.371246, Reference-ID: 95.31.153.26
Reference Timestamp: 3843677595.431751999 (2021/10/20 08:13:15)
Originator Timestamp: 3843708224.802159560 (2021/10/20 16:43:44)
Receive Timestamp: 3843708322.196751999 (2021/10/20 16:45:22)
Transmit Timestamp: 3843708322.196751999 (2021/10/20 16:45:22)
Originator - Receive Timestamp: +97.394592739
Originator - Transmit Timestamp: +97.394592739
16:43:46.802173 IP (tos 0x0, ttl 64, id 19514, offset 0, flags [DF], proto UDP (17), lenth 76)
192.168.90.18.123 > 192.168.90.118.123: [bad udp cksum -> 0x4b29!]NTPv3, lenth 48
Client, Leap indicator: clocl unsynchornized(192), Stratum 0 (unspecified), poll 6 (64s), pricision -23
Root Delay: 0.000000, Root disprsion: 0.000091, Reference-ID: (unspec)
Reference Timestamp: 0.000000000
Originator Timestamp: 3843708322.196751999 (2021/10/20 16:45:22)
Receive Timestamp: 3843708224.1802334560 (2021/10/20 16:43:44)
Transmit Timestamp: 3843708226.802159634 (2021/10/20 16:43:46)
Originator - Receive Timestamp: -97.394417439
Originator - Transmit Timestamp: -95.394592365
上面的文字是手动输入的。基于以上结果,kernel
似乎接收到了ntp数据包,服务器和客户端之间的协议是匹配的。但是我的服务器的ntpd没有收到或没有重新确认数据包。我怎么才能修好它?
我执行了命令ntpq -np
,如下所示:
ntpq: read: Connection refused
发布于 2021-11-11 05:47:04
询问我的服务提供商后,NTP服务器基于Windows,哪个协议是SNTP。在Debian 8.11's默认的NTP软件中,它不能接受SNTP数据包。所以我需要升级ntp版本。
发布于 2021-11-15 05:31:49
您没有在您的问题(但在评论中)指出,但您的系统不能访问互联网,只能访问您的数据中心的服务,其中不包括ntp,但只有sntp。
如果没有真正的ntp服务器,而且您无法获得GPS同步的替代方案,那么您唯一的选择是禁用系统上的ntpd,并使用sntp客户端,可能在cron中。
https://unix.stackexchange.com/questions/676093
复制相似问题