NTP服务器的搭建与错误分析

来源:互联网 发布:淘宝自动下架之后 编辑:程序博客网 时间:2024/05/29 18:36

于今日登录游戏管理器发现未能同步到玩家数据,随后发现日志中时间不对等,原因是忘记配置NTP服务,以此记录NTP的搭建与错误分析;
安装NTP服务

yum install -y ntp

此ntp属于ntp服务器的安装;若需要同步,则需要安装Ntpdate
/usr/share/zoneinfo 由 tzdata 所提供,规定了各主要时区的时间设定文件
例如中国的时区设置文件是/usr/share/zoneinfo/Asia/Shanghai
/etc/sysconfig/clock
Linux的主要时区设定文件。每次启动后Linux操作系统会自动读取这个文件来设定系统预设要显示的时间。如这个文件内容为”ZONE=Asia/Chongqing”,则表示Linux操作系统的时间设定使用/usr/share/zoneinfo/Asia/Chongqing这个文件。
/etc/localtime
本地系统的时间设定文件,如果clock文件中规定了使用的时间设定文件为/usr/share/zoneinfo/Asia/Shanghai,Linux操作系统就会将Shanghai那个文件复制一份为/etc/localtime,所以系统的时间显示就会以Shanghai那个时间设定文件为准

若所有系统时区不一致,请先修改时区,下列是时区修改方法
以修改文件形式修改

 cat  /etc/sysconfig/clockZONE="Asia/Shanghai"UTC=true            rm   -f /etc/localtime ln -sf  /usr/share/zoneinfo/Asia/Shanghai    /etc/localtime         

linux是依据/etc/localtime文件内容知道目前系统的时区信息,这个文件一般是从/usr/share/zoneinfo/面选择适当的时区复制过来就可以使用
重启机器后就可以看到时区更改

通过tzselect命令来修改时区

执行tzselect命令 –> 选择Asia –> 选择China –> 选择Shanghai —
选择yes ,执行完tzselect命令选择时区后,时区并没有更改,只是在命令最后提示你可以执行TZ=‘Asia/Shanghai’ ;
export TZ 最终将这行命令添加到/etc/profile文件中去,然后退出并重新登陆

以下为我的ntp.conf的配置信息 /etc/ntp.conf

driftfile /var/lib/ntp/driftrestrict default kod nomodify notrap nopeer noqueryrestrict -6 default kod nomodify notrap nopeer noqueryrestrict 127.0.0.1 restrict -6 ::1server time-nw.nist.gov prefer  #该服务器优先restrict  default  nomodify  #允许所有网段的机器向改服务器同步server  127.127.1.0 # local clock #当没有时间服务器时,以自身时间为主fudge   127.127.1.0 stratum 10includefile /etc/ntp/crypto/pwkeys /etc/ntp/keys

重启ntp服务器
/etc/init.d/ntpd restart
检查ntp服务启动情况

ntpq -premote           refid      st t when poll reach   delay   offset  jitter==============================================================================*LOCAL(0)        .LOCL.     10 l   36   64  377    0.000    0.000   0.000

注意LOCAL的这个就是与自身同步的ntp server。 注意reach这个值,在启动ntp
server服务后,这个值就从0开始不断增加,当增加到17的时候,从0到17是5次的变更,每一次是poll的值的秒数,是64秒*5=320秒的时间。
如果之后从ntp客户端同步ntp server还失败的话,用ntpdate –d来查询详细错误信息,再做判断。
在其他机器上使用ntpdate -d ServerIP也可以检查

当用ntpdate -d 来查询时会发现导致 no server suitable for synchronization found 的错误的信息有以下2个:
错误1.
Server dropped: Strata too high

在ntp客户端运行ntpdate 10.1.23.98,
出现no server suitable for synchronization found的错误。
在ntp客户端用ntpdate –d 10.1.23.98查看
发现有“Server dropped: strata too high”的错误,并且显示“stratum16”。
而正常情况下stratum这个值得范围是“0~15”。
这是因为NTP server还没有和其自身或者它的server同步上。
以下的定义是让NTPServer和其自身保持同步,如果在/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的错误。

错误2.
Server dropped: no date
从客户端执行netdate –d时有错误信息如下:

transmit(10.1.23.98)transmit(10.1.23.98)transmit(10.1.23.98)transmit(10.1.23.98)transmit(10.1.23.98)10.1.23.98: Server dropped: no dataserver 10.1.23.98, port 123.....28 Jul 17:42:24 ntpdate[14148]: no server suitable for synchronization found

出现这个问题的原因可能有2:
1:
检查ntp的版本,如果你使用的是ntp4.2(包括4.2)之后的版本,在restrict的定义中使用了notrust的话,会导致以上错误
2:
检查ntp server的防火墙。可能是server的防火墙屏蔽了upd 123端口。

以上文章参考来自
http://www.blogjava.net/spray/archive/2008/07/10/213964.html
http://blog.51cto.com/dngood/662451

原创粉丝点击