首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么ntpd提示‘没有服务器找到’whenI同步时间手动?

为什么ntpd提示‘没有服务器找到’whenI同步时间手动?
EN

Unix & Linux用户
提问于 2021-11-04 04:08:15
回答 2查看 717关注 0票数 1

我的服务器是托管在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内容如下所示:

代码语言:javascript
运行
复制
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

我尝试在下面的命令中执行与原子钟同步的时间,它显示“没有找到服务器”

代码语言:javascript
运行
复制
sudo service ntp stop
sudo ntpd -gq

我试着平移原子钟的IP地址,它是可达的,而且延迟也很低。我试图用tcp线头在原子钟和服务器之间捕获一些数据包,它如下所示:

代码语言:javascript
运行
复制
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,如下所示:

代码语言:javascript
运行
复制
ntpq: read: Connection refused
EN

回答 2

Unix & Linux用户

发布于 2021-11-11 05:47:04

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

票数 1
EN

Unix & Linux用户

发布于 2021-11-15 05:31:49

您没有在您的问题(但在评论中)指出,但您的系统不能访问互联网,只能访问您的数据中心的服务,其中不包括ntp,但只有sntp。

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

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/676093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档