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

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


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

# vim /etc/ntp.conf
restrict 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 ntp
host found : server.neo.com
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)
receive(192.168.70.11)
transmit(192.168.70.11)
192.168.70.11: Server dropped: strata too high
server 192.168.70.11, port 123
stratum 16, precision -24, leap 11, trust 000
refid [192.168.70.11], delay 0.02582, dispersion 0.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Thu, Feb  7 2036 14:28:16.000
originate timestamp: d758e59f.1fbcb350  Sat, Jun 28 2014 14:56:31.123
transmit timestamp:  d6e84e93.fd303b31  Fri, Apr  4 2014  5:18:11.989
filter 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.000000
delay 0.02582, dispersion 0.00000
offset 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.conf
server 127.127.1.0
fudge 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 -p
Every 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 -p
Every 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 ntp
host found : server.neo.com
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)
receive(192.168.70.11)
transmit(192.168.70.11)
server 192.168.70.11, port 123
stratum 9, precision -24, leap 00, trust 000
refid [192.168.70.11], delay 0.02582, dispersion 0.00000
transmitted 4, in filter 4
reference time:    d758e781.49a1617b  Sat, Jun 28 2014 15:04:33.287
originate timestamp: d758e7ab.8db9fc66  Sat, Jun 28 2014 15:05:15.553
transmit timestamp:  d6e850a0.6b3af2bc  Fri, Apr  4 2014  5:26:56.418
filter 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.000000
delay 0.02582, dispersion 0.00000
offset 7378699.134602

 4 Apr 05:26:56 ntpdate[2057]: step time server 192.168.70.11 offset 7378699.134602 sec

此时,客户端正常同步。

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