评:

时间同步
yum install -y rdate && rdate -s time.nist.gov

------------------------------
rdate解决方案:
使用ntpdate的遇到这样的错误提示:
no server suitable for synchronization found
很可能是防火墙封锁了udp的123端口, 如果关闭的防火墙问题依旧, 很可能是上层路由的设置有问题, 如果这种情况, 我们就只能通过tcp来更新时间啦
那肯定是rdate
<!–more–>
查看时间服务器的时间:
# 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.tw
28 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.tw
28 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 notrust changed between versions 4.1 and 4.2.
In 4.1 (and earlier) notrust meant "Don't trust this host/subnet for time".
In 4.2 (and later) notrust means "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的设置。