NTP for LINUX

NTP来同步服务器时间

 

本文介绍了在Linux下使用NTP协议通过网络来同步系统时钟。

 

二、NTP简介

Network Time Protocol(NTP)是一种网络协议,用来使你的计算机系统时间与准确的时间源同步。Internet上有一组“1级”(使用原子钟时间)和“2级”(可接受的可靠性和准确性)服务器可以允许其它计算机与它们同步时间。这些服务器的列表可以在以下地址找到:

http://www.eecis.udel.edu/~mills/ntp/servers.html

一般局域网中使用一台服务器同“1级”或“2级”服务器同步时间,局域网中的其它设备再同这台服务器同步时间。对于一些需要协同操作的应用,使用NTP是很好的选择。

 

三、安装NTP软件

1、获取NTP软件

ntp-4.1.1.tar.gz

http://www.ntp.org/downloads.html

 

2、编译安装

解压缩软件包

tar xzvf ntp-4.1.1.tar.gz

 

配置编译选项

cd ntp-4.1.1/

./configure

 

编译安装

make

make check

make install

缺省执行程序被安装在/usr/local/bin目录下。

 

四、配置NTP服务

1、编辑配置文件

缺省使用/etc/ntp.conf文件作为配置文件,这里给出一个例子:

server 127.127.1.0     # local clock

fudge  127.127.1.0 stratum 10

 

server otherntp.server.org    # A stratum1 server at server.org

server ntp.research.gov       # A stratum2 server at research.gov

 

driftfile /etc/ntp/drift

broadcastdelay  0.008

authenticate no

keys /etc/ntp/keys

 

restrict 192.168.1.0 mask 255.255.255.0notrust nomodify notrap

restrict 127.0.0.1

#restrict default ignore

 

在这个配置文件中,我们指定了两个同步时间源:otherntp.server.orgntp.research.gov。并指定了192.168.1.0/24这个局域网中的客户端都可以与我们的服务器同步时间,当然本地127.0.0.1也可以。

注意,“#restrictdefault ignore”这一句是被注释的,否则它会覆盖其它restrict语句,我们的服务器就不能与其它计算机通信了。

实际使用时最好指定34个同步时间源,这样就可以避免因某个时间源无法访问而不能同步时间。

更多的配置选项请参考http://www.ntp.org/documentation.html中的文档。

 

2、启动NTP服务

执行下面的命令启动NTP服务:

/usr/local/bin/ntpd -c /etc/ntp.conf -l/var/log/ntpd.log -p /var/run/ntpd.pid

ntpd启动后,日志文件在/var/log/ntpd.log,进程号文件在/var/run/ntpd.pid。如果有什么问题可以查看日志文件的内容。

 

3、确认服务器时间正确同步

ntpd启动后过一段时间后就可以查看你的服务器是否正确与时间源同步,使用/usr/local/bin/ntpq -p

显示例子如下:

    remote           refid      st t when poll reach   delay  offset  jitter

==============================================================================

*LOCAL(0)        LOCAL(0)        10 l   56  64  377    0.000   0.000   0.008

 dan.drydog.com tick.ucla.edu    2 u  128  64    4  640.988 -85.179   0.008

 

下面的例子说明不能正确同步:

   remote           refid      st t when poll reach   delay  offset  jitter

==============================================================================

 LOCAL(0)       LOCAL(0)        10 l    -  64    7    0.000   0.000   0.008

 ntp-cup.externa 0.0.0.0         16 u   -   64    0   0.000    0.000 4000.00

 snvl-smtp1.trim 0.0.0.0         16 u   -   64    0   0.000    0.000 4000.00

 nist1.aol-ca.tr 0.0.0.0         16 u   -   64    0   0.000    0.000 4000.00

 

这是就要考虑是配置的问题还是网络的问题了。

 

五、其他问题

1、网络中其他计算机

在局域网中的其它设备只要支持NTP都可以与刚配好的服务器同步时间。例如有一台Cisco的路由器,配置如下:

ciscorouter(config)# ntp server192.168.1.100

ciscorouter(config)# clock timezone CN 8

这里假定我们的服务器地址是192.168.1.100,我们中国的时区是+8。在Cisco路由器中就可以用show clock命令来查看时间是否同步。

 

2、防火墙问题

NTP协议使用UDP协议的123端口来通信,注意源端口和目的端口都是123。所以如果你使用防火墙,需要允许UDP123端口。

 

3、不能同步

如果你的计算机的系统时间与时间源的时间相差太大,就不能正确同步。这时可以先手动调整你的计算机的时间以接近时间源的准确时间,再使用NTP来同步时间。

手动调整时间可以使用date命令,如:

date -s "05/20/2003 14:11:20"

时间格式为:月//::

 

六、参考资料

http://www.siliconvalleyccie.com/ntp.htm

http://www.ntp.org/documentation.html

 


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