NTP服务主要是用于时间同步的。

使用ntp服务和使用ntpdate命令的区别主要是ntp服务会根据相差的时间来逐步调整,ntpdate命令同步时间,会不考虑时间相差的问题,直接一次调整到位。

ntp服务器端简单配置:

1 修改vi /etc/ntp.conf 

添加上一级 ntp 服务器

这个可以随便加几个,格式为:

server +server的地址

server time-a.nist.gov

server time-b.nist.gov

server time.nist.gov

2 添加NTP服务器允许更新的客户机

restrict 192.168.0.0 mask 255.255.255.0 nomodify

允许192.168.0.0 网段的机器到这台机器上更新

参数说明:

gnore :关闭所有的 NTP 联机服务

nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时

notrust:客户端除非通过认证,否则该客户端来源将被视为不信任子网

noquery :不提供客户端的时间查询

3 ntp服务初始化同步

配置/etc/ntp/step-tickers 添加:

 clock.redhat.com 

或者其他ntp服务器地址。

在ntp服务启动的时候会强制到这个ntp服务器上去更新(这个会一下同步到位

4 添加硬件时钟同步:

配置/etc/sysconfig/ntpd文件添加:

SYNC_HWCLOCK=yes

这个会将时间同步给bios

5 测试ntpd服务是否可以正常开启:

service ntpd start

6 设置开机启动

chkconfig ntpd on

 

客户端设置:

只需要将/etc/ntpd.conf设置ntpd服务器地址即可

server +server的地址 (内网地址)

 

服务器端 AND 客户端

PS:防火墙需要开放123端口

 

来自 <http://blog.sina.com.cn/s/blog_659b48590100v4uf.html>

 

 

 

 

 

如果说,没有网络ntp server 时需加如下两行

server 127.127.1.0

fudge 127.127.1.0 stratum 8

 

 

 

 

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

 

当用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的设置

 

来自 <http://www.blogjava.net/spray/archive/2008/07/10/213964.html