分享

解决no server suitable for synchronization found

 jeenful 2015-05-19

rdate解决方案:

使用ntpdate的遇到这样的错误提示:

no server suitable for synchronization found

很可能是防火墙封锁了udp的123端口, 如果关闭的防火墙问题依旧, 很可能是上层路由的设置有问题, 如果这种情况, 我们就只能通过tcp来更新时间啦

那肯定是rdate

查看时间服务器的时间:

# rdate time-b.nist.gov

设置时间和时间服务器同步:

# rdate -s time-b.nist.gov

有什么不明白的, 请 # man rdate

下面附送系列时间服务器的列表, 有的不一定可以使用哈

time.nist.gov

time-b.nist.gov

216.118.116.105

rdate.darkorb.net

202.106.196.19

time-b.timefreq.bldrdoc.gov

ntpdate-debian解决方案:

执行 /usr/sbin/ntpdate time.stdtime.gov.tw 出现下述错误:

28 Dec 10:44:25 ntpdate[20348]: no server suitable for synchronization found

注: 于 Ubuntu / Debian Linux / FreeBSD 都有看到类似状况.

NTPDate Debug

sudo /usr/sbin/ntpdate -d time.stdtime.gov.tw28 Dec 10:44:20 ntpdate[20348]: ntpdate 4.2.4p8@1.1612-o Tue Dec 8 22:21:54 UTC 2009 (1)

transmit(11.11.11.11)

transmit(11.11.11.11)

transmit(11.11.11.11)

transmit(11.11.11.11)

transmit(11.11.11.11)

11.11.11.11: Server dropped: no data

server 11.11.11.11, port 123

stratum 0, precision 0, leap 00, trust 000

refid [11.11.11.11], delay 0.00000, dispersion 64.00000

transmitted 4, in filter 4

reference time:   00000000.00000000 Thu, Feb 7 2036 14:28:16.000

originate timestamp: 00000000.00000000 Thu, Feb 7 2036 14:28:16.000

transmit timestamp: cee29a08.b7863bee Mon, Dec 28 2009 10:44:24.716

filter delay: 0.00000 0.00000 0.00000 0.00000

0.00000 0.00000 0.00000 0.00000

filter offset: 0.000000 0.000000 0.000000 0.000000

0.000000 0.000000 0.000000 0.000000

delay 0.00000, dispersion 64.00000

offset 0.000000

NTPDate 正常状况

sudo /usr/sbin/ntpdate -d time.stdtime.gov.tw28 Dec 10:44:10 ntpdate[3790]: ntpdate 4.2.4p6@1.1549-o Fri Dec 4 19:03:30 UTC 2009 (1)

transmit(11.11.11.11)

receive(11.11.11.11)

transmit(11.11.11.11)

receive(11.11.11.11)

transmit(11.11.11.11)

receive(11.11.11.11)

transmit(11.11.11.11)

receive(11.11.11.11)

transmit(11.11.11.11)

server 11.11.11.11, port 123

stratum 2, precision -20, leap 00, trust 000

refid [11.11.11.11], delay 0.05048, dispersion 0.00038

transmitted 4, in filter 4

reference time:   cee2968e.b3b3e71f Mon, Dec 28 2009 10:29:34.701

originate timestamp: cee29a07.4a9ed10b Mon, Dec 28 2009 10:44:23.291

transmit timestamp: cee29a07.57baecd0 Mon, Dec 28 2009 10:44:23.342

filter delay: 0.05048 0.05132 0.05075 0.05052

0.00000 0.00000 0.00000 0.00000

filter offset: -0.06352 -0.06368 -0.06410 -0.06398

0.000000 0.000000 0.000000 0.000000

delay 0.05048, dispersion 0.00038

offset -0.063529

查到都是 udp 的 123 port 被 Firewall 挡掉(被 iptables / ipfw 挡掉), 不过我并没有挡这个 port, 很奇怪~

解法

上述原因不明, 不过可以用此方法解决(换个 Time Server 就解决了. XD)

sudo /usr/sbin/ntpdate-debian

28 Dec 10:46:46 ntpdate[20408]: step time server 204.9.54.119 offset -2.274225 sec

上述命令为执行此语法: sudo /usr/sbin/ntpdate -d 0.debian.pool.ntp.org

注1: 从[0-3].debian.pool.ntp.org 的 Server sync 时间.

注2: 直接执行 sudo /usr/sbin/ntpdate 0.debian.pool.ntp.org 也是可以.

另一个牛人的解决方案:

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

错误1.Server dropped: Strata too high

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

在ntp客户端用ntpdate –d serverIP查看,发现有“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 suitable for 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.Server dropped: 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: Server dropped: 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 notrustchanged between versions 4.1 and 4.2.

In 4.1 (and earlier) notrustmeant "Don't trust this host/subnet for time".

In 4.2 (and later) notrustmeans "Ignore all NTP packets that are not cryptographically authenticated." This forces remote time servers to authenticate themselves to your (client) ntpd

解决:

把notrust去掉。

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

可以用命令

#service iptables stop

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多