Ntp服务

对于企业来说,当你有成百上千的计算机,都不能直接连接互联网,时间不统一影响业务,如果一台一台的修改,那不得累死人啊。这时搭建一个自己的NTP服务器就显出它的优势了。

下面我们就来学习一下如何搭建自己的NTP时间服务器。

安装方法有:

1、RPM安装

2、YUM安装

3、源码编译安装

相关命令:

date    修改和显示日期和时间的命令。

hwclock    将当前系统时间写入CMOS的命令,只有root用户才可以使用。

ntpd     NTP服务的守护进程文件,需要先启动它才能提供NTP服务。

ntpdate     客户端时间同步

配置NTP

# vi /etc/ntp.conf

#========权限控制============
restrict default kod nomodify notrap nopeer noquery     拒绝IPV4用户
restrict -6 default kod nomodify notrap nopeer noquery   拒绝IPV6用户
restrict 210.72.145.44 授权国家授时中心服务器访问本地NTP       
restrict 133.100.11.8  授权133.100.11.8访问本地NTP
restrict 127.0.0.1
restrict -6 ::1
restrict 192.168.100.0 mask 255.255.255.0 nomodify     本地网段授权访问
#=========源服务器===========
server 210.72.145.44 prefer   指定上级更新时间服务器,优先使用这个地址
server 133.100.11.8
#=========差异分析===========
driftfile /var/lib/ntp/drift
keys    /etc/ntp/keys

# service ntpd start    RPM和YUM安装的启动方式

#/usr/local/ntp/bin/ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid   源码编译安装的启动方式

ntpd启动后,客户机要等几分钟再与其进行时间同步,否则会提示“no server suitable for synchronization found”错误。

# netstat -tlunp | grep ntp       如果看到123端口,说明ntp服务成功启动。

# ntpstat    查看ntp服务器与上级服务器是否通讯

# ntpq –p   查看本地NTP与上级服务器的通讯情况

客户端每次手动更新太麻烦写进计划任务 一切ok

0 1 * * * /usr/sbin/ntpdate 192.168.100.2 ,/sbin/hwclock -w

报错说明

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

错误1.Server dropped: Strata too high

在ntp客户端运行ntpdate serverIP,出现no server suitable for synchronization found的错误。

在ntp客户端用ntpdate –d serverIP查看,发现有“Server dropped: strata too high”的错误,并且显示“stratum 16”。而正常情况下stratum这个值得范围是“0~15”。

这是因为NTP server还没有和其自身或者它的server同步上。

以下的定义是让NTP Server和其自身保持同步,如果在/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的错误。

那么如何知道何时ntp server完成了和自身同步的过程呢?

在ntp server上使用命令:

# watch ntpq -p


出现画面:

Every 2.0s: ntpq -p Thu Jul 10 02:28:32 2008

remote refid st t when poll reach delay offset jitter

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

192.168.30.22 LOCAL(0) 8 u 22 64 1 2.113 179133. 0.001

LOCAL(0) LOCAL(0) 10 l 21 64 1 0.000 0.000 0.001

注意LOCAL的这个就是与自身同步的ntp server。

注意reach这个值,在启动ntp server服务后,这个值就从0开始不断增加,当增加到17的时候,从0到17是5次的变更,每一次是poll的值的秒数,是64秒*5=320秒的时间。

如果之后从ntp客户端同步ntp server还失败的话,用ntpdate –d来查询详细错误信息,再做判断。


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

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

192.168.30.22: Server dropped: no data

server 192.168.30.22, port 123

.....
28 Jul 17:42:24 ntpdate[14148]: no server suitable for synchronization found

出现这个问题的原因可能有2:

1.检查ntp的版本,如果你使用的是ntp4.2(包括4.2)之后的版本,在restrict的定义中使用了notrust的话,会导致以上错误。

使用以下命令检查ntp的版本:

# ntpq -c version


下面是来自ntp官方网站的说明:
The behavior of notrust changed between versions 4.1 and 4.2.

In 4.1 (and earlier) notrust meant "Don't trust this host/subnet for time".

In 4.2 (and later) notrust means "Ignore all NTP packets that are not cryptographically authenticated." This forces remote time servers to authenticate themselves to your (client) ntpd

解决:

把notrust去掉。


2.检查ntp server的防火墙。可能是server的防火墙屏蔽了upd 123端口。

可以用命令

#iptables  INPUT -p udp -m udp --dport 123 -j ACCEPT

如果觉得麻烦就直接把防火墙停掉

#service iptables stop

来关掉iptables服务后再尝试从ntp客户端的同步,如果成功,证明是防火墙的问题,需要更改iptables的设置。

 

 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章