以下是一些的NTP配置例子:
NTP使用123端口,如有防火墙打开UDP123端口
#netstat -an | grep 123
...
...
udp 0 0 *.123 *.*
...
...
配置一个使用自己内部时钟的本地NTP服务器
要配置一个使用系统时钟作为时间源的NTP服务器,需要在/etc/ntp.conf文件中添加如下的记录:
server 127.127.1.1
fudge 127.127.1.1 stratun 10
在以上的记录中:
指定的IP地址是一个“伪”IP地址,确定本地系统为时间源。
指定的IP地址127.127.1.1告诉NTP使用内部时钟作为时间源。
"fudge"定义了这个时钟的级别,如果没有这个记录,节点就是一级服务器。将级别重新定义为10是个好的办法,这样客户端在查询这个服务器的时候就会知道这个服务器不是一个可靠的时间源
这种时间同步的方式只应该在本地的网络不能使用外部的时间源的时候使用.
配置一个使用直接查询方式的客户端
要配置一个客户端让它可以直接查询指定的NTP服务器,在客户端的/etc/ntp.conf文件中增加:
server brian
driftfile /etc/ntp.drift
这个客户端会直接向服务器brian发送查询请求来确认自己的时间。
默认的查询的时间间隔为64秒,并可以调节。
driftfile用来跟踪客户机的时间和服务器的时间差异。如果driftfile保持稳定,系统更多的是用它来调节客户端的时间,这样会减少对服务器的查询。
配置一个使用广播方式的客户端
要配置一个监听时间广播信息的客户端,在客户端的/etc/ntp.conf文件中加上:
broadcastclient yes
driftfile /etc/ntp.drift
以上信息的解释:
客户端会被动地监听NTP的广播信息,并依靠它来调节自己的时钟。
对许多节点的大型网络推荐使用这种方式进行时间同步,而不使用直接查询指定服务器的方式。
因为这种方式可以显著减少NTP对网络资源的占用。
客户端必须和NTP服务器在同一个子网内。
NTP如何调节系统时钟
NTP中用来保持网络中的节点之间的时钟同步的机制有三种。
ntpdate命令
1. ntptrace (等同于windows下面的traceroute)
2. ntpdate –q HOSTNAME (查询其他主机的时间)
3. ntpdate –d HOSTNAME (debug模式)
4. ntpdate -b HOSTNAME (和其他主机同步)
5. ntpq -p
ntpdate命令被用来立即同步客户端和服务器的时钟。这是同步客户端和服务器的时钟的最快方式。
系统每次启动的时候会使用这个命令,用来确保客户端和服务器的时钟的同步。
这个命令通常指定一个NTP服务器作为一个参数,客户端的时钟被设置为和服务器的时间匹配。然而,如果这个命令使用多个NTP服务器作为参数,客户端会使用最低级的NTP服务器。如果级别相等,客户端会使用平均数。
xntpd守护进程
xntpd守护进程在后台持续运行,并且会定时校验客户端的时钟和NTP服务器的时钟。xntpd守护进程通常是在系统启动的时候启动。
因为客户端的时钟可能产生漂移,以致与实际的NTP时钟有差异。xntpd守护进程会周期性地发送一个NTP服务器的网络请求,并且与客户端的时钟对比,在必要的时候修正客户端的时间,同时将时间差存到一个/etc/ntp.conf文件。
默认的xntpd时间检查的间隔为64秒,在第一次检查的时候,客户端的时钟和NTP服务器上的时钟的差异会被记录下来,同时依靠这个时间差异来计划下一次检查的计划。如果这个时间差异很大,下一次的时间检查会很快发生。如果这个差异很小,下一次的检查到来的时间会相应的延长。
/etc/ntp.conf文件
/etc/ntp.conf文件被用来在记录每次校验发生时候客户端和服务器时钟之间的差(或者叫漂移)。
一旦xntpd守护进程预计到这个时间差,它会开始使用这个“可预期”的漂移,来调节本机的时钟,这样就避免每次都去查询网络中的ntp服务器,从而可以减轻网络负载。
xntpd守护进程会慢慢的转成使用这个drift文件,而查询NTP服务器的次数会慢慢变少。当这个值逐渐稳定并且保持同一个值,对NTP服务器的查询会变得更少,直到达到NTP请求的最小值。
配置一个NTP服务器
配置NTP服务器的步骤:
1.编辑/etc/rc.config.d/netdaemons文件,让xntpd守护进程在每次系统启动的时候自动启动。设置XNTPD变量的值为1。
export NTPDATE_SERVER=
export XNTPD=1
export XNTPD_ARGS=
对NTP服务器来说,不要设置NTPDATE_SERVER变量(让它为空)。这个变量是为NTP客户端使用。
2.编辑/etc/TIMEZONE文件来指定系统时区。设置TZ和系统的时区相同。/usr/lib/tztab文件中有所有的时区变量。
TZ=CST6CDT
export TZ
3.编辑/etc/ntp.conf文件同时定义NTP服务器(与上一章中描述的类似)。以下是配置使用本地时钟作为时间源的NTP服务器的例子:
server 127.127.1.1
fudge 127.127.1.1 stratum 10
4.通过执行如下的命令,手工启动xntpd守护进程:
/sbin/init.d/xntpd start
5.等待,xntpd守护进程启动会花费6分钟的时间。
6.检验NTP服务器的配置,执行下列的命令:
ntpq -p
配置NTP客户端
配置一个NTP客户端的过程和配置一个NTP服务器相同,不同的只是配置文件的内容。
配置一个NTP客户端的步骤如下:
1.编辑/etc/rc.config.d/netdaemons文件,让xntpd守护进程在每次系统启动的时候自动启动。设置XNTPD变量的值为1,同时指定ntpdate命令查询的是哪一个NTP服务器:
export NTPDATE_SERVER="NTP_server1 NTP_server2'
export XNTPD=1
export XNTPD_ARGS=
2.编辑/etc/TIMEZONE文件,为客户机指定正确的时区。/var/lib/tztab文件中有所有的时区变量的列表。
TZ=CST6CDT
export TZ
3.编辑/etc/ntp.conf文件,定义本机为一个NTP客户端。下面是一个定义NTP广播客户端的例子:
broadcastclient yes
dirftfile /etc/ntp.drift
4.执行如下的命令手工启动xntpd守护进程:
/sbin/init.d/xntpd start
5.等待xntpd守护进程启动,建立与NTP服务器和同伴服务器的联系大约需要6分钟。
6.要验证其它的NTP服务器和peers的联系是否正确建立。执行下面的命令:
ntpg -p
验证NTP的功能
NTP查错推荐使用三种方式:
检测syslog文件
当xntpd守护进程启动,它会在/var/adm/syslog/syslog.log文件中添加几条记录,包括:
xntpd启动和停止的时间
与其它的运行NTP的节点之间的关系。
/etc/ntp.conf文件中发现的错误。
验证xntpd守护进程是否正在运行。
xntpd守护进程必须存在,否则就不能同步其它系统的时钟。
浏览NTP服务器节点的状态和与客户端的联系。
命令:
ntpg -p
查询网络中的NTP服务器,同时显示客户端和每个服务器的关系,例如:
# ntpg -p
remote refid st when poll reach delay offset disp
-----------------------------
* John Larry 3 64 64 377 0.87 10.56 16.11
+ Brian Renay 3 100 264 376 9.89 5.94 16.40
Darren 0.0.0.0 15 - 64 0 0.00 0.00 1600.00
* 指出响应的NTP服务器和最精确的服务器
+ 指出响应这个查询请求的NTP服务器
blank 指出没有响应的NTP服务器
remote 响应这个请求的NTP服务器的名称
refid NTP服务器使用的更高一级的服务器的名称
st 正在响应请求的NTP服务器的级别
when 上一次成功请求之后到现在的秒数
poll 当前的请求的时钟间隔的秒数
Others 其它的被用于决定精确度和不一致性的统计信息
阅读(2533) | 评论(0) | 转发(0) |