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或域名