CentOS7使用NTP搭建时间同步服务器

2021-04-01 10:34:52 浏览数 (1)

前言

为什么要搭建时间同步服务器呢?场景是这样的。

我们有两台CentOS服务器,其中一台是可以连接外网的,下文中我们称它为A服务器,另一台不能连接外网,但是与A服务器在同一局域网中,下文中我们称它为服务器B。

现在我们需要将A服务器的时间进行网络校准,这部分操作还是比较容易的,按照下面的步骤操作即可。

1、yum进行ntp的安装:

代码语言:javascript复制
yum -y install ntp

2、执行同步命令:

代码语言:javascript复制
ntpdate time1.aliyun.com

3、查看当前系统时间:

代码语言:javascript复制
date

这样我们A服务器的时间就通过阿里提供的时间服务器进行了时间的校准工作。

那么问题来了,我们的B服务器也是需要校准时间的,但又没有外网,所以无法使用相同的步骤来进行时间同步,所以王子就想到了在A服务器上搭建时间同步服务器,B服务器通过A服务器进行时间校准工作。

接下来就是去网上查阅资料实现了,但是网络上大部分人的文章写的都很不完善,导致实践出现了各种问题。

本文就是为了记录下正确的搭建流程而编写的,相信会对小伙伴们有所帮助。

时间服务器搭建流程

首先我们要清楚,NTP服务器默认是会使用udp的123端口的,所以我们的第一步就是开放123端口,命令如下:

代码语言:javascript复制
firewall-cmd --permanent --zone=public --add-port=123/udp

增加端口后当然要重新加载防火墙,让配置生效了

代码语言:javascript复制
firewall-cmd --state

当然,如果小伙伴们用不到防火墙,直接关闭防火墙即可。

Centos7默认通过chronyd服务实现时钟同步,我们需要关闭chronyd服务并使其开机不自启,同时启动ntpd并将其加入开机自启:

代码语言:javascript复制
systemctl stop chronyd
systemctl disable chronyd 
systemctl enable ntpd
systemctl start ntpd

接下来就是去修改ntp的配置文件了:

代码语言:javascript复制
vi /etc/ntp.conf

这个配置文件中的内容我们主要修改如下内容:

代码语言:javascript复制
#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

你去看其他的文章,会让你修改很多东西,其实完全没有必要,只要修改上边这两部分就可以了。

修改后重新启动NTP服务即可。

代码语言:javascript复制
systemctl restart ntpd

到这里其实我们的时间服务器就搭建完成了,现在我们只要在B服务器上执行下边的命令就可以进行时间同步了。

代码语言:javascript复制
ntpdate A服务器的IP地址

写在后边

实际的情况,我们不应该去手动执行时间同步命令,应该设置一个定时任务,每隔多长时间就自动去进行一次时间校对工作。

我们可以直接执行如下命令:

代码语言:javascript复制
crontab -e

进入定时任务的vim界面,在其中设置定时任务执行同步时间的命令就可以了,比如下边的内容,就是每隔1个小时执行一次同步命令:

代码语言:javascript复制
0 */1 * * * ntpdate 192.160.99.201

保存后,可以通过下边的命令查看已经存在的任务:

代码语言:javascript复制
crontab -l

0 人点赞