该方式首先在局域网内建立一个内部的时钟同步服务器,所有其它服务器作为ntpd客户端向这台时钟同步服务器做同步,然后再由这台时钟同步服务器向客户提供的时钟源服务器以ntpd方式做同步。
这样有两个好处:一是减小客户时钟源服务器上的负载;二是如果客户时钟源服务器不存在了,在局域网内还有自建的这个时钟源服务器来保证服务器间的时钟同步。
一、内部时钟同步服务器server配置---( ntp-server)
1、选择一台服务器作为时钟同步服务器server,进行本机时间检查。
1-1、执行以下命令检查时区是否为中国时区“亚洲/上海”:
timedatectl
如果不是中国时区,执行以下命令设置为中国所用时间:
timedatectl set-timezone Asia/Shanghai
1-2、执行以下命令修改系统时间为当前时间
timedatectl set-time "2019-04-22 15:08:01"
使用date命令检查确认时间设置是否成功。
异常处理:
如果执行timedatectl set-time "2019-04-04 10:57:02"报错,如下图:
那么,先执行以下命令关闭时间同步:
timedatectl set-ntp no
再执行以下命令更新时间(修改成当前时间):
timedatectl set-time "2019-04-04 10:57:02"
最后再开启时间同步:
timedatectl set-ntp yes
2、关闭防火墙
执行以下命令关闭本机防火墙。如果不允许关闭防火墙,则需配置访问规则,确保本机的udp协议123端口开放。
systemctl stop firewalld.service
systemctl disable firewalld.service
3、安装ntp服务
执行以下命令,检查服务器上是否已安装有ntp服务:
rpm –qa ntp
如果没有任何提示,就说明没有安装。
给服务器配置好yum源后,执行以下命令使用yum方式安装ntp服务:
yum -y install ntp
安装完成后,再执行 rpm –qm ntp 命令,可看到以下模块的版本提示:
4、配置ntp服务
设置ntp服务器为其自身,比如服务器的本机ip地址为:10.10.50.11。修改npt服务的配置文件为以自身为时钟源,并接受指定网段的客户端的时钟同步请求。通过修改/etc/ntp.conf文件来实现:
vi /etc/ntp.conf
其中server设置127.127.1.0为其自身,示例中新增了两个restrict段,分别填写需要使用该时钟NTP服务器同步时间的客户端网段。
注意:如果要与自身进行同步,server段的ip地址必须写成:127.127.1.0,而不能按常规写成127.0.0.1,否则ntp服务启动后并不会与本机进行同步。
5、启动ntp服务
5-1、执行以下命令启动ntp服务,并设置服务器上的ntp服务开机自启动:
systemctl start ntpd
systemctl enable ntpd
5-2、使用以下命令查询ntp服务是否启动正常
systemctl status ntpd
6、检查时钟同步是否成功
说明:配置与服务器自身进行时钟同步,是否同步成功可以通过以下两条命令立刻看到结果。
6-2、执行以下命令:
ntpstat
如果出现以下提示,则说明没有进行同步:
6-3、执行以下命令:
ntpq -p
注意:LOCAL前面的 * 号,表示ntp服务已正常与本机进行同步。如果出现以下提示,前面没有*号,则说明没有同步成功:
二、其他服务器(client)同步配置
1、执行以下命令使用yum方式安装ntp服务
yum -y install ntp
2、执行以下命令为server设置时区,设置为中国所用时区:
timedatectl set-timezone Asia/Shanghai
使用以下命令检查时区设置是否成功
timedatectl
3、手工与时钟服务器同步一次时间
建议先通过ntpdate命令,手动与时钟服务器进行一次时钟同步。在每台服务器上执行同步命令进行时钟同步;若10.10.50.11为时钟同步服务器,命令参考如下,现场根据实际情况修改:
ntpdate 10.10.50.11
如下图所示,本次手动时钟同步成功。
说明:当客户端与服务端的系统时间相差太大时,通过ntpd服务方式会无法完成时钟同步,并且会导致ntpd服务异常退出。
异常处理:
①情况1:如果ntpdate执行不成功,出现如下图所示错误:
是由于当本机ntpd服务已启动时,无法再通过ntpdate命令与目标机进行时钟同步。只需把本机的ntpd服务停止,就能正常执行ntpdate命令了。
②情况2:如果ntpdate执行不成功,出现如下图所示错误:
是由于目标服务器的ntpd服务没有启动,只需把目标服务器的ntpd服务启动起来,就能正常执行ntpdate命令了。
4、配置客户端服务器的ntp服务 (实现自动同步)
在client节点上设置要同步的server为部署的时钟同步服务器(server)的IP,通过修改/etc/ntp.conf文件来实现:
vi /etc/ntp.conf
5、启动client节点上的ntpd服务,并设置服务器上的ntp服务开机自启动:
systemctl start ntpd
systemctl enable ntpd
6、检查时钟同步是否成功
说明:启动ntpd服务后,client端服务器配置与时钟同步服务器server进行时钟同步的结果,需要等待5-10分钟才能正常同步上。如果ntp服务启动后马上执行ntpstat命令检查同步结果,是会返回unsynchronised的结果。测试检查时钟同步是否正常,是一个需要等待的工作。
6-1、执行以下命令:
ntpstat
如果出现以下提示,则说明没有同步上:
6-2、执行以下命令:
ntpq -p
注意:LOCAL前面的 * 号,表示ntp服务已正常与时钟服务器server进行同步。如果出现以下提示,前面没有 * 号,则说明没有同步成功:
三、向客户的时钟源同步
注意:以下操作在 内部时钟同步服务器server---( ntp-server) 上进行
当局域网内的服务器完成时钟同步后,最后就可向上一层的外部时钟源进行时钟同步。这个外部时钟源通常是客户提供的时钟源,在此模拟IP地址为:172.25.22.95。
1、修改局域网时钟同步服务器的ntp服务配置
按照上面完成的配置,局域网时钟同步服务器server的模拟地址为:10.10.50.11。
vi /etc/ntp.conf
2、重启局域网时钟同步服务器server上的ntpd服务。
systemctl restart ntpd
3、检查多层次时钟同步是否成功
等待10分钟左右时间,分别在客户时钟源、局域网时钟同步服务器server、局域网服务器client上分别执行以下两条命令,如有下图显示,则说明向客户时钟源同步成功。
3-1、执行以下命令:
ntpstat
3-2、执行以下命令:
ntpq -p
注意: 前面需要有 * 星号,才代表与时钟服务器正确同步。