本文主要写了一些在Linux(CentOS 6.5)服务器上配置ntp的经验,事件缘由来源于配置Zabbix监控ntp服务时的测试配置。

NTP时间同步协议的服务端(ntpd服务)和客户端(ntpdate服)不能同时运行,即在运行ntpd服务后不能运行ntpdate服务,否则ntpdate服务会提示启动失败,而且日志中也会提示“the NTP socket is in use, exiting”,如下图所示。

关于ntp(时间同步协议)服务端和客户端的配置说明_时间服务器配置

但客户端运行时,服务端可以运行,但服务端运行时,客户端不能运行,要运行客户端服务,就必须关闭服务端。

但单独运行ntpdate时,不会受影响,如下图所示。

关于ntp(时间同步协议)服务端和客户端的配置说明_zabbix监控ntp服务_02



为了避免这种错误,可以在服务启动脚本中设置一下启动条件,如下图所示:

(1)在ntpd服务的启动脚本/etc/init.d/ntpd中的start函数中添加红色框中的部分,监测ntpdate服务是否运行,如果已经运行,则报一个警告提示,但不退出脚本。

关于ntp(时间同步协议)服务端和客户端的配置说明_ntpd配置_03


(2)在ntpdate服务的启动脚本/etc/init.d/ntpdate中的start函数中添加红色框中的部分,监测ntpd服务是否运行,如果已经运行,则报一个错误提示并退出脚本(exit 3)。

关于ntp(时间同步协议)服务端和客户端的配置说明_ntpd配置_04

另外贴一下ntpd服务的配置文件(/etc/ntp.conf)供配置ntp时参考。

# 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 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 
restrict -6 ::1

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 172.16.172.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).
# http://www.pool.ntp.org/zone/cn
# http://www.pool.ntp.org/zone/asia
server 2.cn.pool.ntp.org
server 3.asia.pool.ntp.org
server 0.asia.pool.ntp.org
	
#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

#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

server 127.127.1.0
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