CentOS7 搭建内网NTP授时服务
一、NTP规划
NTP(Network Time Protocol)时间服务器,可用于服务器之间的时间同步,使时间保持一致,对于一些对时间一致性要求高的服务(集群)很适用。
在这里,主要是针对无网络的情况下,要求服务器之间时间一致。
主机规划:
服务端 ntpSer:10.12.42.220
客户端 ntpClient:10.12.42.221
二、服务端安装
1、yum进行ntp的安装:
yum -y install ntp ntpdate
2、执行同步命令:
ntpdate time1.aliyun.com
3、查看当前系统时间:
date
这样我们NTP服务器的时间就通过阿里提供的时间服务器进行了时间的校准工作。
三、系统配置
NTP服务器默认是会使用 UDP 的 123 端口的,所以我们的第一步就是开放123端口,命令如下:
firewall-cmd --permanent --zone=public --add-port=123/udp firewall-cmd --reload
接下来就是去修改ntp的配置文件了:
vi /etc/ntp.conf
这个配置文件中的内容我们主要修改如下内容:
#1 把下边这行注释掉 # restrict default nomodify notrap nopeer noquery #2 删除掉原有的4行server,增加下边的两行,127.127.1.0代表把本机作为时间服务器 server 127.127.1.0 fudge 127.127.1.0 stratum 10
你去看其他的文章,会让你修改很多东西,其实完全没有必要,只要修改上边这两部分就可以了。
CentOS7 默认通过chronyd服务实现时钟同步,我们需要关闭chronyd服务并使其开机不自启,同时启动ntpd并将其加入开机自启:
#如果有 chronyd 服务则执行
systemctl stop chronyd
systemctl disable chronyd
#启动ntpd,加入自启动
systemctl enable ntpd
systemctl start ntpd
到这里其实我们的时间服务器就搭建完成了。
四、客户端
现在我们只要在B服务器上执行下边的命令就可以进行时间同步了。
ntpdate NTP服务器地址
实际的情况,我们不应该去手动执行时间同步命令,应该设置一个定时任务,每隔多长时间就自动去进行一次时间校对工作。
#安装ntp客户端
yum -y install ntpdate
#安装定时任务依赖
yum install crontabs
#设置为可用状态并启动
systemctl enable crond
systemctl start crond
#配置文件
vi /etc/crontab
进入定时任务的vim界面,在其中设置定时任务执行同步时间的命令就可以了,比如下边的内容,就是每隔1天执行一次同步命令:
#每小时执行一次
0 0 */1 * * ntpdate 10.12.42.220
保存以上内容,
#立即生效
crontab /etc/crontab
注:如果在生效命令执行时,出现以下错误:
premature EOF errors in crontab file, can"t install.
则在文件末尾多打一个回车就可以了。
网上有说多打一个空格,那是个坑。
注:文强哥出品,祝各位使用愉快!