ubuntu 14.04 NTP服务器搭建及某些故障排查

安装

apt-get install ntp

配置

/etc/ntp.conf 文件是Linux NTP的主要配置文件


# 时间源服务器
server cn.pool.ntp.org
server 0.cn.pool.ntp.org
server 1.cn.pool.ntp.org
server 2.cn.pool.ntp.org
server 3.cn.pool.ntp.org
# 连不上其他服务器时与LOCAL对时,使能够把本机时间给其他client提供服务
server 127.127.1.0
fudge 127.127.1.0 stratum 8
# 还要确保localhost有足够权限.
restrict 127.0.0.1
restrict ::1
#界定网络从这个服务器接受NTP同步的请求
restrict 10.0.0.0 mask 255.0.0.0 nomodify



然后 /etc/init.d/ntp start 启动服务

根据别的文章介绍,启动后大约需要5分钟时间才能提供服务

配置好后要注意本机的网络是否通畅,域名解析是否正常,对时的时间源是否正常(网传的国家授时中心的IP好像失效了)。

排错命令

服务器端执行ntpq -p 出现下图的内容代表服务正常

ubuntu 14.04 NTP服务器搭建及某些故障排查

有问题记得看系统日志:/var/log/syslog

客户端可以用ntpdate -d 排错,如下文的文摘

以下内容为文摘(引自:http://www.blogjava.net/spray/archive/2008/07/10/213964.html)


当用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的时候,从0175次的变更,每一次是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的设置。

你可能感兴趣的:(ubuntu,ntp)