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的设置。 |
|