需求描述:

服务端:192.168.26.101 有外网权限,同步网络标准时间,做本地的时钟服务器
客户端:192.168.26.102 无外网权限,同步本地时间服务器,同步192.168.26.101 的时间

通过192.168.26.101搭建本地NTP时间服务器,同步网络时间。再由内网客户端同步本地服务端的时间。

服务端

1、关闭防火墙

systemctl stop firewalld.service && systemctl disable firewalld.service

2、关闭selinux

setenforce 0
vim /etc/selinux/config
将SELINUX=enforcing  的值改为 SELINUX=disabled

3、修改时区为上海(如果已经是CST时区则跳过)

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

4、检查ntp(检查服务器是否已经安装ntp服务,如果有,则跳过第5步骤)

# rpm -q ntp

ntp-4.2.6p5-28.el7.centos.x86_64

# rpm -qa|egrep "ntp-|ntpdate"

ntpdate-4.2.6p5-28.el7.centos.x86_64
ntp-4.2.6p5-28.el7.centos.x86_64

5、卸载ntp 并重新离线安装ntp服务(因为线上服务器是内网环境,准备离线安装包)

#卸载
yum -y remove ntp
rpm -e ntpdate-4.2.6p5-28.el7.centos.x86_64

#安装(安装包https://pan.baidu.com/s/1tuWF0l-vxWN5ivR_fVHTkg 
提取码:ntpd)
rpm -ivh libopts-5.18.12-alt2.x86_64.rpm
rpm -ivh ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm
rpm -ivh ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm

#检查
# rpm -qa |grep ntp

python-ntplib-0.3.2-1.el7.noarch
ntpdate-4.2.6p5-29.el7.centos.2.x86_64
fontpackages-filesystem-1.44-8.el7.noarch
ntp-4.2.6p5-29.el7.centos.2.x86_64

6、ntp 服务端配置(192.168.26.101)

# 将以下配置 覆盖 原文件内容
vim /etc/ntp.conf

driftfile /var/lib/ntp/drift

restrict ntp1.aliyun.com nomodify notrap noquery
restrict time2.aliyun.com nomodify notrap noquery
restrict cn.ntp.org.cn nomodify notrap noquery
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap
restrict 127.0.0.1
restrict ::1
server 127.127.1.0 iburst
fudge 127.127.1.0 stratum 10

server 1.ntp1.aliyun.com
server 2.ntp2.aliyun.com
server3.ntp3.aliyun.com
server 4.ntp4.aliyun.com
server 5.ntp5.aliyun.com
server 6.ntp6.aliyun.com
server 7.ntp7.aliyun.com
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor

重启ntp服务&加入开机自启

systemctl restart ntpd && systemctl enable ntpd

服务端测试
1) 先手动修改一下时间,大概延迟30秒或者1分钟

date -s "2021-09-06 18:00"

2)重启ntpd 服务

systemctl restart ntpd 

3) 十分钟后执行此命令,检查NTP是否成功同步网络时间。

# ntpstat

synchronised to NTP server (120.25.115.20) at stratum 3 time
correct to within 1067 ms
polling server every 64 s
#注意:如果IP 为(127.127.1.0)则 网络时间没有同步成功,过10分钟后再执行此命令

4)查看时间是否正确同步

date

客户端

7、客户端client 192.168.26.102配置(客户端只需要有ntpdate就行,需要关闭防火墙,设置时区,重复1、2、3步骤)

#注意:客户端不要启动ntpd服务,否则会报错:

6 Sep 01:21:27 ntpdate[5441]: the NTP socket is in use, exiting

客户端测试(用客户端192.168.26.102 去同步 192.168.26.101 服务端的时间)

[root@localhost ntp]# date
Mon Sep  6 01:22:02 PDT 2021

[root@localhost ntp]# systemctl stop ntpd

[root@localhost ntp]# ntpdate 192.168.26.101
 6 Sep 16:22:08 ntpdate[5461]: step time server 192.168.26.101 offset 53986.698167 sec

[root@localhost ntp]# date
Mon Sep  6 16:22:11 PDT 2021

可以看到,客户端的时间已经改变,测试通过!

最后,客户端加入定时同步,对时间要求高的业务可以按需调整
每隔30分钟同步一次。

crontab -e
*/30 * * * * ntpdate 192.168.26.101 >/dev/null 2>&1
Logo

更多推荐