NTP时钟同步
NTP介绍
NTP (Network Time Protocol,网络时间协议)是用来使计算机时间同步的一种协议。
它可以使计算机对其服务器或时钟源做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒)。
对于服务器群集来说,这个是一个很重要的服务,因为群集需要保证每个服务器的时间是保持一致的,这样它们在执行同一个任务时才不会出现有的服务器有滞后的现象,这样群集的状态才是健康的。
NTP的工作模式
C/S模式
NTP的协议及端口号
UDP协议123号端口
配置步骤
(1)配置环境
服务端:192.168.20.149
客户端1:192.168.20.150
客户端2……
(2)全部关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
(3)全部安装 ntpdate 软件
yum -y install ntpdate
(4)服务器端同步 aliyun 时间
实际操作中,可以将aliyun网址改为时间服务器地址。
ntpdate ntp.aliyun.com
(5)服务器端为其他客户机提供服务需要安装 ntp 软件
yum -y install ntp
(6)修改 ntp 配置文件
服务端和客户端都需要配置
vi /etc/ntp.conf
restrict default nomodify # 第8行
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap # 第17行,192.168.1.0 为本机上网网段
第 21 行到第 24 行删除或者加#注释,重新添加两行
fudge 127.127.1.0 stratum 10
server 127.127.1.0
(7)启动服务
systemctl start ntpd
netstat -anptu | grep ntpd
udp 0 0 192.168.20.149:123 0.0.0.0:* 78169/ntpd
(8)设置周期性计划任务
使用crontab -e配置周期性计划任务并保存退出,其中阿里云地址需要修改成时间服务器地址。
crontab -e
* * * * * /usr/sbin/ntpdate ntp.aliyun.com
(9)客户机设定同步源为 192.168.20.149
ntpdate 192.168.20.149
(10)客户机设置周期性计划任务
crontab -e
* * * * * /usr/sbin/ntpdate 192.168.20.149
同步说明
(1)同步周期最短时间
同步周期最短时间为1分钟,每分钟同步一次。
(2)同步示意图
问题说明
(1)出现如下错误,解决办法
由于 xntpd 已经绑定到了该 Socket。运行 ntpdate 时,它会首先进行广播,然后侦听端口 123。如果 xntpd 正在运行,而有一个进程已经在侦听该端口了,则会使 ntpdate 无法在上面运行。运行下列命令,即可找出 xntpd 的 PID,
ps -ef|grep xntpd root
124185 6192 0 15:49 pts/1 00:00:00 grep xntpd 如果没有找到pid。
使用lsof –i:123
没有lsof命令的话:yum install -y lsof
清除 (Kill) 该进程,然后尝试再次与 ntp 服务器进行同步。此时您不应该收到此错误消息。 请注意,如果您尝试与之同步的服务器没有运行 xntpd,则会收到下列错误消息: ntpdate[12573]: no server suitable for synchronization found 出现这种情况的原因是,如果您想使用另一个服务器的时间,该服务器必须已经进行了自身同步。
(2)如果客户端没有同步到时间
如果客户端没有同步到时间服务器的时间,需要检查时间服务器的ntp是否启动,使用如下命令:
需要启动ntpd服务,再查看状态为active说明启动成功。