由于公司内网没有个时间服务器,同时防火墙的123端口也未开放,不想麻烦人家网络工程师只能自己动手搭建个时间服务器。本己为就一个NTP是多简单啊,没想到还遇到一个纠结的问题,下面是整个过程。

现在发行版都己默认安装ntp server

ntp服务器配置

只需修改/etc/ntp.conf配置文件,声明哪些客户端能进行同步,以及同步相当安全权限

# vim /etc/ntp.confrestrict 192.168.0.0 mask 255.255.0.0 nomodify  //允许192.168.0.0网段同步,不可修改

上面简单增加一条语句就是个ntp服务器了,下面测试客启机是否能正常使用;

如果要配置任何主机都可以进行时间同步

将“restrict default nomodify notrap noquery”表示默认禁止所有地址同步时间,修改,查看,这行修改成下面:

restrict default nomodify notrap

ntp客户端

# ntpdate 192.168.70.11 4 Apr 05:15:43 ntpdate[2051]: no server suitable for synchronization found

上面提示服务器不可用,首先检查网络,防火墙

如果网络和防火墙没问题,我们启用ntpdate的debug功能,查看详细的错误

# ntpdate -d 192.168.70.11 4 Apr 05:18:11 ntpdate[2053]: ntpdate 4.2.4p8@1.1612-o Fri Feb 22 11:23:28 UTC 2013 (1)Looking for host 192.168.70.11 and service ntphost found : server.neo.comtransmit(192.168.70.11)receive(192.168.70.11)transmit(192.168.70.11)receive(192.168.70.11)transmit(192.168.70.11)receive(192.168.70.11)transmit(192.168.70.11)receive(192.168.70.11)transmit(192.168.70.11)192.168.70.11: Server dropped: strata too highserver 192.168.70.11, port 123stratum 16, precision -24, leap 11, trust 000refid [192.168.70.11], delay 0.02582, dispersion 0.00000transmitted 4, in filter 4reference time:    00000000.00000000  Thu, Feb  7 2036 14:28:16.000originate timestamp: d758e59f.1fbcb350  Sat, Jun 28 2014 14:56:31.123transmit timestamp:  d6e84e93.fd303b31  Fri, Apr  4 2014  5:18:11.989filter delay:  0.02640  0.02585  0.02582  0.02602          0.00000  0.00000  0.00000  0.00000 filter offset: 7378699. 7378699. 7378699. 7378699.         0.000000 0.000000 0.000000 0.000000delay 0.02582, dispersion 0.00000offset 7378699.134683 4 Apr 05:18:11 ntpdate[2053]: no server suitable for synchronization found

这里我们发现两处问题:

1)

192.168.70.11: Server dropped: strata too high

server 192.168.70.11, port 123

stratum 16, precision -24, leap 11, trust 000

2)

no server suitable for synchronization found

以上两个错误因为NTP server还没有和其自身或者它的server同步上。而正常情况下stratum这个值得范围是“0~15”。

以下的定义是让NTP Server和其自身保持同步,如果在/ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端。

server 127.127.1.0     //回环地址
fudge 127.127.1.0 stratum 8

# vim /etc/ntp.confserver 127.127.1.0fudge 127.127.1.0 stratum 8#server 0.rhel.pool.ntp.org#server 1.rhel.pool.ntp.org#server 2.rhel.pool.ntp.org

在ntp server上重新启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生no server suitable for synchronization found的错误。

那么如何知道何时ntp server完成了和自身同步的过程呢?
在ntp server上使用命令:

# watch ntpq -pEvery 2.0s: ntpq -p                                                                                      Sat Jun 28 15:02:09 2014     remote           refid     st t when poll reach   delay   offset  jitter============================================================================== LOCAL(0)        .LOCL.           8 l   51   64    1    0.000    0.000   0.000
当reach由1变为17后再测试客户机是否能正常同步# watch ntpq -pEvery 2.0s: ntpq -p                                                                                      Sat Jun 28 15:05:07 2014     remote           refid     st t when poll reach   delay   offset  jitter==============================================================================*LOCAL(0)        .LOCL.           8 l   34   64   17    0.000    0.000   0.000

大概5-10分钟后(reach=17),就可以在客户端测试是否能同步上了;

# ntpdate -d 192.168.70.11 4 Apr 05:26:56 ntpdate[2057]: ntpdate 4.2.4p8@1.1612-o Fri Feb 22 11:23:28 UTC 2013 (1)Looking for host 192.168.70.11 and service ntphost found : server.neo.comtransmit(192.168.70.11)receive(192.168.70.11)transmit(192.168.70.11)receive(192.168.70.11)transmit(192.168.70.11)receive(192.168.70.11)transmit(192.168.70.11)receive(192.168.70.11)transmit(192.168.70.11)server 192.168.70.11, port 123stratum 9, precision -24, leap 00, trust 000refid [192.168.70.11], delay 0.02582, dispersion 0.00000transmitted 4, in filter 4reference time:    d758e781.49a1617b  Sat, Jun 28 2014 15:04:33.287originate timestamp: d758e7ab.8db9fc66  Sat, Jun 28 2014 15:05:15.553transmit timestamp:  d6e850a0.6b3af2bc  Fri, Apr  4 2014  5:26:56.418filter delay:  0.02707  0.02585  0.02582  0.02582          0.00000  0.00000  0.00000  0.00000 filter offset: 7378699. 7378699. 7378699. 7378699.         0.000000 0.000000 0.000000 0.000000delay 0.02582, dispersion 0.00000offset 7378699.134602 4 Apr 05:26:56 ntpdate[2057]: step time server 192.168.70.11 offset 7378699.134602 sec

此时,客户端正常同步。

# date 12121212Fri Dec 12 12:12:00 CST 2014# dateFri Dec 12 12:12:01 CST 2014# ntpdate 192.168.70.1128 Jun 15:36:24 ntpdate[2296]: step time server 192.168.70.11 offset -14416542.543406 sec# dateSat Jun 28 15:36:28 CST 2014