为什么手动同步时间时 ntpd 提示“未找到服务器”?

为什么手动同步时间时 ntpd 提示“未找到服务器”?

我的服务器托管在IDC,由于这个IDC服务器无法访问互联网,所以我可以使用互联网NTP服务器。但是IDC服务提供商有原子钟,所以我可以与原子钟同步时间。
原子钟的IP是192.168.90.118,我的服务器的IP是192.168.90.18。我的服务器的操作系统是Debian 8.11,我安装了ntp sudo apt install 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

我尝试 ping 原子钟的 IP 地址,它是可达的且延迟较低。我尝试使用 tcpdim 捕获原子钟和我的服务器之间的一些数据包,如下所示:

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

答案1

询问我的服务提供商后,NTP服务器是基于Windows的,协议是SNTP。在Debian 8.11的默认NTP软件中,它不能接受SNTP数据包。所以我需要升级ntp版本。

答案2

您没有在问题中说明(而是在评论中说明),但您说您的系统无法访问互联网,只能访问数据中心的服务,其中不包括 ntp,仅包括 sntp。

如果真正的 ntp 服务器不可用,并且您无法获得 GPS 同步的替代方案,那么您唯一的选择是在系统上禁用 ntpd 并使用 sntp 客户端(可能在 cron 中)。

相关内容