- 2019-01-10
- 阅读()
- 来源:互联数据
对于企业用户,在Web服务器安全搭建时,如果您网内所有计算机都通过互联网同步时间,在速度和精度上都有一定的折扣,并且对互联网出口带宽也有一定的影响,对于这类用户,我们建议通过自己搭建ntp服务为内部用户提供时间同步服务。
NTP网络时间协议基本概念
它是用来同步网络中各个计算机的时间的协议。在计算机的世界里,对时间的统一性和准确性要求就非常地高,是按照A这台计算机的时间,还是按照B这台计算机的时间?NTP就是用来解决这个问题的,NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。
它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)进行时间同步,它可以提供高精准度的时间校正,而且可以使用加密确认的方式来防止恶毒的协议攻击。0层的服务器采用的是原子钟、GPS钟等物理设备,stratum 1与stratum 0 是直接相连的,往后的stratum与上一层stratum通过网络相连,同一层的server也可以交互。
在Linux系统下搭建ntp服务是非常简单的,即便你对Linux不熟悉,只需要简单的几个操作就够用了,下面是几个必要的步骤:
1、安装你熟悉的操作系统(这里假设你安装的是CentOS 6)。
2、查看是否已经安装ntp程序,在终端上运行如下命令:
#rpm -qa | grep ntpntp-4.2.4p8-2.el6.centos.x86_64ntpdate-4.2.4p8-2.el6.centos.x86_64
如果看到这两个软件包,说明已经安装好了ntp程序。
否则通过如下命令安装
yum install ntp
3、修改/etc/ntp.conf文件,增加如下服务器地址:
server ntp.neu.edu.cn maxpoll 6server time.hko.hk maxpoll 6server 133.243.238.163 maxpoll 6server 193.190.230.65 maxpoll 6server 220.231.55.106 maxpoll 6server 210.72.145.44 maxpoll 6server ntp.openxid.com maxpoll 6server ntp.zyhyt.orgmaxpoll 6server time.tju.edu.cn maxpoll 6
启动ntpd程序,并让系统下次启动时默认启动ntpd程序:
chkconfig ntpd onservice ntpd start
4、修改防火墙规则
iptables -I INPUT -m udp -p udp --dport 123 -j ACCEPTip6tables -I INPUT -m udp -p udp --dport 123 -j ACCEPTservice iptables saveservice ip6tables save
经过一段时间的同步,你就可以通过如下命令来测试你机器是否可以正常服务了
ntpdate -q SERVER_IP
搭建NTP服务器可能的问题
1、no server suitable for synchronization found
原因:ntpd启动过程需要5分钟左右!(或者ntpd根本没有启动)
在ntp server上重新启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生no server suitable for synchronization found的错误。
那么如何知道何时ntp server完成了和自身同步的过程呢?
在ntp server上使用命令:
watch ntpq
出现画面:
**注意**LOCAL的这个就是与自身同步的ntp server,而reach这个值,在启动ntp server服务后,就从0开始不断增加,当增加到17的时候,从0到17是5次的变更,每一次是poll的值的秒数,是64秒*5=320秒的时间。
如果之后从ntp客户端同步ntp server还失败的话,用ntpdate –d来查询详细错误信息,再做判断。
2、Server dropped: strata too high”的错误,并且显示“stratum 16”
修改fudge server的stratum为0~15
3、Server dropped: no data
从客户端执行ntpdate –d server_ip(debug模式)时有错误信息: Server dropped: no data.
ntp服务器出现这个问题的原因可能有2种:
(1) 检查ntp的版本,如果你使用的是ntp4.2(包括4.2)之后的版本,在restrict的定义中使用了notrust的话,会导致以上错误(版本差异),解决方法是把notrust去掉。
# ntpq -c version
(2) 检查ntp server的防火墙,可能是server的防火墙屏蔽了upd 123端口。可以用下面命令来关掉iptables服务后再尝试从ntp客户端的同步,如果成功,证明是防火墙的问题,需要更改iptables的设置。
#service iptables stop