解决ntp的错误 no server suitable for synchronization found

来源:互联网 发布:浦发淘宝信用卡好用吗 编辑:程序博客网 时间:2024/05/16 15:57

 

当用ntpdate -d 来查询时会发现导致 no serversuitable for synchronization found 的错误的信息有以下2个:  

错误1.Server dropped: Strata too high

在ntp客户端运行ntpdate serverIP,出现no server suitable for synchronizationfound的错误。

在ntp客户端用ntpdate –dserverIP查看,发现有“Server dropped:strata too high”的错误,并且显示“stratum 16”。而正常情况下stratum这个值得范围是“0~15”。

这是因为NTP server还没有和其自身或者它的server同步上。

以下的定义是让NTP Server和其自身保持同步,如果在/ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端。

server 127.127.1.0
fudge 127.127.1.0 stratum 8 

 

在ntp server上重新启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生no server suitablefor synchronization found的错误。

那么如何知道何时ntp server完成了和自身同步的过程呢?

在ntp server上使用命令:

# watch ntpq -p


出现画面:

Every 2.0s: ntpq-p                                                                                                            Thu Jul 10 02:28:32 2008

    remote          refid      st t when poll reach   delay  offset jitter

==============================================================================

 192.168.30.22  LOCAL(0)         8 u  22   64    1   2.113 179133.   0.001

 LOCAL(0)       LOCAL(0)        10 l  21   64    1   0.000   0.000  0.001

注意LOCAL的这个就是与自身同步的ntp server。

注意reach这个值,在启动ntp server服务后,这个值就从0开始不断增加,当增加到17的时候,从0到17是5次的变更,每一次是poll的值的秒数,是64秒*5=320秒的时间。

如果之后从ntp客户端同步ntp server还失败的话,用ntpdate –d来查询详细错误信息,再做判断。

错误2.Serverdropped: no data

从客户端执行netdate –d时有错误信息如下:

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

192.168.30.22: Serverdropped: no data

server 192.168.30.22,port 123

.....
28 Jul 17:42:24 ntpdate[14148]: no server suitable for synchronization found

出现这个问题的原因可能有2:

1。检查ntp的版本,如果你使用的是ntp4.2(包括4.2)之后的版本,在restrict的定义中使用了notrust的话,会导致以上错误。

使用以下命令检查ntp的版本:

# ntpq -c version


下面是来自ntp官方网站的说明:
The behavior of notrust changedbetween versions 4.1 and 4.2.

In 4.1 (and earlier) notrust meant "Don't trust thishost/subnet for time".

In 4.2 (and later) notrust means "Ignore all NTP packetsthat are not cryptographically authenticated." This forces remote timeservers to authenticate themselves to your (client) ntpd

解决:

把notrust去掉。


2。检查ntp server的防火墙。可能是server的防火墙屏蔽了upd 123端口。

可以用命令

#service iptables stop


来关掉iptables服务后再尝试从ntp客户端的同步,如果成功,证明是防火墙的问题,需要更改iptables的设置。

 

 

 

 

 

1 0