首页 > 代码库 > centos7 搭建ntp服务器

centos7 搭建ntp服务器

一、安装ntp服务

首先检查服务器上是否已安装ntp服务:

[root@centos7 /]rpm -qa | grep ntp    

ntp-4.2.6p5-22.el7.centos.2.x86_64    

ntpdate-4.2.6p5-22.el7.centos.2.x86_64 

如果有上述内容输出,测说明ntp服务已安装;否则需要安装ntp服务

[root@centos7 /]yum install -y ntpd 

安装有yum、rpm、源码安装等多种方式,本次安装使用yum安装。如果服务器能联网,建议采用yum安装。

二、配置ntp

采用yum或rpm安装情况下,ntp的配置文件路径为/etc/ntp.conf

1、首先找到互联网上提供时间时间同步的ntp server

http://www.pool.ntp.org是NTP的官方网站,在这上面我们可以找到离我们城市最近的NTP Server. NTP建议我们为了保障时间的准确性,最少找两个个NTP Server。

比如在中国可以选择下面几台服务器

       server 1.cn.pool.ntp.org
	   server 0.asia.pool.ntp.org
	   server 2.asia.pool.ntp.org

2、在配置之前最好先手动和上面的服务器同步一次时间,使服务器时间尽量接近标准时间

[root@centos7 /]ntpdate 1.cn.pool.ntp.org

假如你的时间差的很离谱的话第一次会看到调整的幅度比较大,所以保险起见可以运行两次。 那么为什么在打开NTP服务之前先要手动运行同步呢?
1. 因为根据NTP的设置,如果你的系统时间比正确时间要快的话那
么NTP是不会帮你调整的,所以要么你把时间设置回去,要么先做一个手动同步

2. 当你的时间设置和NTP服务器的时间相差很大的时候,NTP会花上较长一段时间进行调整.所以手动同步可以减少这段时间

3、配置/etc/ntp.conf(红色部分为修改部分)

# For more information about this file, see the man pages

# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).


driftfile /var/lib/ntp/drift


# Permit time synchronization with our time source, but do not

# permit the source to query or modify the service on this system.

restrict default nomodify notrap nopeer noquery


# Permit all access over the loopback interface.  This could

# be tightened as well, but to do so would effect some of

# the administrative functions.

restrict 127.0.0.1 

restrict ::1


# Hosts on local network are less restricted.

#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap#允许特定网段能同步时间


# Use public servers from the pool.ntp.org project.

# Please consider joining the pool (http://www.pool.ntp.org/join.html).

#server 0.centos.pool.ntp.org iburst

#server 1.centos.pool.ntp.org iburst

#server 2.centos.pool.ntp.org iburst

#server 3.centos.pool.ntp.org iburst

server 1.cn.pool.ntp.org  #向该服务器同步时间,下同

server 0.asia.pool.ntp.org

server 2.asia.pool.ntp.org


#broadcast 192.168.1.255 autokey # broadcast server

#broadcastclient # broadcast client

#broadcast 224.0.1.1 autokey # multicast server

#multicastclient 224.0.1.1 # multicast client

#manycastserver 239.255.254.254 # manycast server

#manycastclient 239.255.254.254 autokey # manycast client

####restrict参数####

#kod 使用kod技术防范“kiss of death”攻击

#ignore 拒绝任何NTP连接

#nomodify 用户端不能使用ntpc,ntpq修改时间服务器参数,但是可以进行网络校时

#noquery 用户端不能使用ntpc,ntpq查询时间服务器参数,不可以进行网络校时

#notrap 不提供远程日志功能

#notrust 拒绝没有认证的客户端

restrict 1.cn.pool.ntp.org nomodify notrap noquery

restrict 0.asia.pool.ntp.org nomodify notrap noquery

restrict 2.asia.pool.ntp.org nomodify notrap noquery


server 127.0.0.1 

fudge 127.127.1.0 stratum 5 

#设置本地时间级别是5,如果上级时间服务器均失效,对外发布本地时间,时间层级是4。

#这行是时间服务器的层次。设为0则为顶级,如果要向别的NTP服务器更新时间,请不要把它设为0

# Enable public key cryptography.

#crypto


includefile /etc/ntp/crypto/pw


# Key file containing the keys and key identifiers used when operating

# with symmetric key cryptography. 

keys /etc/ntp/keys


# Specify the key identifiers which are trusted.

#trustedkey 4 8 42


# Specify the key identifier to use with the ntpdc utility.

#requestkey 8


# Specify the key identifier to use with the ntpq utility.

#controlkey 8


# Enable writing of statistics records.

#statistics clockstats cryptostats loopstats peerstats


# Disable the monitoring facility to prevent amplification attacks using ntpdc

# monlist command when default restrict does not include the noquery flag. See

# CVE-2013-5211 for more details.

# Note: Monitoring will not be disabled with the limited restriction flag.

disable monitor


配置好之后,启动ntp服务

[root@centos7 /]systemctl start ntpd

[root@centos7 /]ntpq -p #查询运行情况

技术分享

更多细节
表头

  •     remote – 用于同步的远程节点或服务器。“LOCAL”表示本机 (当没有远程服务器可用时会出现)
        refid – 远程的服务器进行同步的更高一级服务器
        st – 远程节点或服务器的 Stratum(级别,NTP 时间同步是分层的)
        t – 类型 (u: unicast(单播) 或 manycast(选播) 客户端, b: broadcast(广播) 或 multicast(多播) 客户端, l: 本地时钟, s: 对称节点(用于备份), A: 选播服务器, B: 广播服务器, M: 多播服务器, 参见“Automatic Server Discovery“)
        when – 最后一次同步到现在的时间 (默认单位为秒, “h”表示小时,“d”表示天)
        poll – 同步的频率:rfc5905建议在 NTPv4 中这个值的范围在 4 (16秒) 至 17 (36小时) 之间(即2的指数次秒),然而观察发现这个值的实际大小在一个小的多的范围内 :64 (26 )秒 至 1024 (210 )秒
        reach – 一个8位的左移移位寄存器值,用来测试能否和服务器连接,每成功连接一次它的值就会增加,以 8 进制显示
        delay – 从本地到远程节点或服务器通信的往返时间(毫秒)
        offset – 主机与远程节点或服务器时间源的时间偏移量,offset 越接近于0,主机和 NTP 服务器的时间越接近(以方均根表示,单位为毫秒)
        jitter – 与远程节点同步的时间源的平均偏差(多个时间样本中的 offset 的偏差,单位是毫秒),这个数值的绝对值越小,主机的时间就越精确


[root@centos7 /]ntpstat #查看是否同步状态,下图可以看出同步成功 

技术分享


如需其它服务器从本机同步时间,还需将ntp服务开放

[root@centos7 /]firewall-cmd --zone=public --add-service=ntp --permanent

[root@centos7 /]firewall-cmd --reload

最后设置开机启动

[root@centos7 /]systemctl enable ntpd


参考资料:
http://www.centoscn.com/CentOS/config/2015/1105/6385.html
http://blog.csdn.net/iloli/article/details/6431757






centos7 搭建ntp服务器