NTP(Network Time Protocol)服务器是用于局域网服务器时间同步使用的,可以保证局域网所有的服务器与时间服务器的时间保持一致,应用于对时间实时性要求高的、必须统一时间事件。

NTP时间服务器是一个简单的常用的服务器,在工作中我们只要做到会用、能搭建起来就行,初学者不用太去深入研究

ntp时间服务器的原理。

服务端配置:

一、安装ntp服务      

yum install ntp ntpdate -y

二、修改ntp.conf配置文件

cp /etc/ntp.conf /etc/ntp.conf.bak   #对ntp.conf文件进行备份

 修改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 #在与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery  #我们对于默认的客户端拒绝所有的操作
restrict -6 default kod 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  #开启内部递归网络接口lo 即允许本机地址一切的操作
restrict -6 ::1

# Hosts on local network are less restricted.
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap#我们允许局域网内所有客户端连接到这台服务器同步时间.但是拒绝让他们修改服务器上的时间

service 192.168.75.132  # 这句也是手动增加的,指明局域网中作为NTP服务器的IP

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.rhel.pool.ntp.org    #互联网上的三个ntp服务器
server 1.rhel.pool.ntp.org
server 2.rhel.pool.ntp.org 

#sebroadcast 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

# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available. 
server  127.127.1.0     # local clock #当服务器与公用的时间服务器失去联系时(连不上网),以局域网的时间服务器为客户端提供时间同步服务 
fudge   127.127.1.0 stratum 10

# 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

三、启动NTP服务

service ntpd start

 为了使服务可以在系统引导的时候自动启动,执行 

service ntpd startchkconfig ntpd on

四、检查时间服务器是否正确同步


 一个可以证明同步有问题的证据是:所有远程服务器的jitter值是4000并且delay和reach的值是0。

可能的原因有:

(1)有防火墙阻断了与server之间的通讯,即123端口是否正常开放;

检查ntp server的防火墙。可能是server的防火墙屏蔽了upd 123端口。可以用命令:

service iptables stop

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

在vi /etc/sysconfig/iptables添加如下规则:

-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT 

(2) 此外每次重启NTP服务器之后大约要3-5分钟客户端才能与server建立正常的通讯连接,否则你在客户端执行“ntpdate 服务器ip”的时候将返回:
    27 Jun 10:20:17 ntpdate[21920]: no server suitable for synchronization found

客户端配置:

一、客户端安装ntp服务

yum install ntp ntpdate -y

二、配置ntp.conf文件 

 只需增加 server 服务器IP

三、手动同步时间

ntpdate 服务器IP或域名