centos 7 NTP 内网时间定时同步

3,297 阅读4分钟

image.png

需求:公司内网多台服务器,集群部署时,需要保证每个服务器的时间一致性,本文采用NTP进行时间同步

一、环境

系统:Centos 7.4
以两台服务器为例,其中一台服务器为server,一台为client:
ntp_server IP:10.25.0.151
ntp_client IP:10.25.0.153

二、ntp安装服务

考虑公司服务器在内网,不能连接外网,采用rpm安装,可在
http://rpmfind.net/linux/rpm2html/search.php?query=ntp链接下载:
ntp-4.2.6p5-29.el7.centos.2.src.rpm,并上传到服务器

在server和client安装ntp:
执行安装命令:
rpm -ivh ntp-4.2.6p5-12.el6.centos.2.x86_64.rpm

三、修改配置/etc/ntp.conf文件

执行命令:vim /etc/ntp.conf
server服务器配置:

image.png

其中,
restrict 10.25.0.0 mask 255.255.255.0 nomodify notrap   #表示允许集群10.25.0.网

段连接同步时间,拒绝client修改服务器时间

server 127.127.1.0  #本地时间
fudge 127.127.1.0 stratum 10 #时间服务器的层次。可设置0-15,设为0则为顶级
client服务器配置:(如果有多台client服务器,亦可如此配置)

image.png

其中,server 10.25.0.151 #时间同步server服务器地址

四、启动NTP服务&开机启动设置(包括server服务器和client服务器)

#启动NTP服务
systemctl start ntpd

#将NTP服务设置为开机启动
systemctl enable ntpd

#服务重启后,检查ntp服务是否加入开机自启动(如果自启动失效,详见异常情况说明)

systemctl status ntpd

重启后执行 systemctl status ntpd 命令后的效果,如下图所示:

image.png

表示加入开机自启动成功

五、server服务器防火墙配置

#开放NTP端口
firewall-cmd --add-port=123/udp --permanent

#重载防火墙规则
firewall-cmd --reload

六、client服务器手动从server服务器进行时间同步

在server服务器上执行date命令,查看时间

image.png

首先client随意设置一个时间:如date -s "20190315 15:12:23" 执行date命令显示时间

如果时区不对,设置时区 timedatectl set-timezone Asia/Shanghai

image.png

client服务器执行命令进行时间同步

ntpdate -u 10.25.0.151

image.png

七、client服务器设置定时同步时间任务

在client上执行crontab命令,设置间隔时间,这里设置的每五分钟同步一次

crontab -e

image.png

此处10.25.0.151为server服务器ip地址

此时,可在client设置任意时间,如:date -s "20190315 15:12:23",隔五分钟查看时间是否与server服务器时间一致

查看ntp服务信息
ntpq –p

以上server服务器和client服务器均为centos系统的情况,如果client为window系统,采用以下设置

八、window 客户端:server服务器配置不变,只需设置window

首先在控制面板->时钟和区域->日期和时间(设置日期和时间)->Internet时间->更改设置

image.png

输入server服务器ip地址,10.25.0.151

image.png

点击 “立即更新”,有可能会同步失败,多试几次,点击“确定”按钮后,如下

image.png

时间同步成功后,系统默认设置为自动同步,并显示下次同步的时间

九、安装可能遇到的异常情况:

1)如果安装提示:
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
执行以下命令:
groupadd mockbuild
useradd mockbuild -g mockbuild

接着再次执行
rpm -ivh ntp-4.2.6p5-12.el6.centos.2.x86_64.rpm
2)如果安装提示,缺少libedit.so.0()(64bit)依赖。下载合适的libedit.rpm安装包:
libedit-3.0-12.20121213cvs.el7.src.rpm
执行libedit安装命令:
rpm -ivh libedit-3.0-12.20121213cvs.el7.src.rpm

接着再次执行
rpm -ivh ntp-4.2.6p5-12.el6.centos.2.x86_64.rpm
3) 如果ntp开机启动失效:
   存在服务和ntp冲突导致开机启动未生效,这个服务是chrony,使用systemctl  is-enabled chronyd 查看
   chrony的启动状态设置,果然也是开机启动,使用 systemctl disable chronyd 将chrony服务的自启动关闭。

image.png

重启服务器后发现ntp服务已启动,ntpd状态running

image.png

参考文章:https://blog.csdn.net/I_Demo/article/details/99673094

十、附加说明

systemctl start ntpd  #启动ntp服务器
systemctl stop ntpd  #停止ntp服务器
crontab -l 查看 定时任务

# 将硬件时间同步到系统时间:
hwclock --hctosys
# 将系统时间同步到硬件时间
hwclock --systohc
# 强制把系统时间写入CMOS
clock -w
# 显示硬件时间
hwclock --show
# 设置硬件时间
hwclock --set --date ‘08/02/2012 12:00:00’
# 更改时区
ln -sf /usr/share/zoneinfor/Asia/Shanghai /etc/localtime 

如果服务器可以连接外网或本地资源库有ntp包,可使用

yum install ntp –y #命令直接安装

其他crontab命令相关阅读: https://www.cnblogs.com/zmdComeOn/p/10330541.html

参考资料:

https://www.cnblogs.com/su-root/p/11380198.html
https://cloud.tencent.com/developer/article/1333862
https://blog.csdn.net/apache2tomcat/article/details/89477732
https://www.cnblogs.com/actively/p/12988713.html