首页 > 代码库 > 搭建ntpd时间服务器

搭建ntpd时间服务器

   由于线上的环境,有些服务器不需要上外网,只需做内网之间的通信即可,所以这些服务器的时间就无法保证同步,可能会对业务造成一些影响,为此,我们需要在内网架设一台NTP时间同步服务器。

    首先在服务端安装ntpd服务,一般情况下安装系统的时候已经安装好,如果没有安装,我们可以使用如下命令安装

    红帽系列:

    

yum install ntpd -y

    ubuntu系列:

apt-get install ntpdate -y

    安装完成我们需要对配置文件做一些更改

[root@hell ~]# grep ‘^[a-z]‘ /etc/ntp.conf 
driftfile /var/lib/ntp/drift
restrict default nomodify notrap   #权限的设定
restrict 127.0.0.1     #开启内部网络递归接口
restrict 192.168.1.100  #开启本机接口
restrict -6 ::1
restrict 192.168.1.0 mask 255.255.255.0  nomodify    #可以同步的网段
server cn.pool.ntp.org   #上级时间服务器,我们可以在后边使用prefer来自己设定默认上级服务器,而不是让系统自己选择
server cn.pool.ntp.org prefer
server ntp.sjtu.edu.cn        #上级时间服务器
server asia.pool.ntp.org        #上级时间服务器
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
logfile /var/log/ntp/ntp.log    #日志文件

  关于权限配置部分一些参数如下:

ignore :关闭所有的 NTP 联机服务 
nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。 
notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网 
noquery :不提供客户端的时间查询 
注意:如果参数没有设定,那就表示该 IP (或子网)没有任何限制!

    编辑完配置文件,保存退出,然后重新启动ntpd服务

service ntpd restart
#注意检查服务是否真的启动,netstat命令查看udp的123端口

  好了,一个简单ntpd时间同步服务器就已经搭建好了。

  我们可以使用ntpq -p命令来查看我们的ntp服务

  

[root@hell ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 202.118.1.130   .INIT.          16 u    -   64    0    0.000    0.000   0.000
 sdns.sjtu.edu.c .INIT.          16 u    -   64    0    0.000    0.000   0.000
*27.114.150.12   193.190.230.65   2 u    2   64  377  389.568    2.578  25.695

其中*是系统选择的时间服务器

remote:响应这个请求的NTP服务器的名称.
fefid:NTP服务器试用的上一级NTP服务器
st:remote远程服务器的级别,由于NTP是层型结构,有顶端的服务器.多层的Relay Server再到客户端
t:时间源(即NTP服务器)的类型,所以我们看到本地的时间服务器对映的类型是l.
when:上一次成功请求到现在中间相隔的时间(秒数).这个值不会超过maxpoll.
poll:本机和远程服务器多长时间进行一次同步(单位为秒).这里依据的是minpoll/maxpoll.
reach:是一个八进制值,用来测试能否和服务器连接,每成功连接一次它的值就会增加.
delay:延时,从本地机发送同步要求到NTP服务器的round trip time(ms)(往返时间).
offset:偏移,主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒(ms).offset越接近于0,主机和NTP服务器的时间越接近.
jitter:抖动,这是一个用来做统计的值,它统计了在特定个连续的连接数里offset的分布情况,简单地说这个数值的绝对值越小,主机的时间就越精确.

好了,服务端已经配置完毕,接下来到客户端,直接添加一条定时任务定时更新时间就可以了。

[root@war ntp]# crontab -l
*/10 * * * *  ntpdate 192.168.1.100  >/dev/null 2&>1

   等过一会看看时间有没有同步吧,这里要注意,一般情况下,时间服务器重启以后需要一段时间的等待才能再一次同步,如果服务器端重启完,客户端马上执行

ntpdate 192.168.1.100

  可能会出现不同步的情况,可以稍微等等再看一下。

本文出自 “风之别鹤” 博客,请务必保留此出处http://addam.blog.51cto.com/5041993/1470665

搭建ntpd时间服务器