一、主机环境

主机名 角色 IP
m-01 NTP 服务端 172.16.1.61
web-01 NTP 客户端 172.16.1.7
web-02 NTP 客户端 172.16.1.8

 

二、服务端配置

2.1 安装 ntp、ntpdate

检查服务器是否安装了 ntp、ntpdate 软件

[root@m-01 ~]# rpm -qa | grep ntp
ntpdate-4.2.6p5-29.el7.centos.x86_64
ntp-4.2.6p5-29.el7.centos.x86_64

如果没有,则需要安装

[root@m-01 ~]# yum -y install ntp ntpdate

2.2 修改 ntp 配置文件

ntp 的配置文件路径为 /etc/ntp.conf

2.2.1 注释以下配置

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

2.2.2 新增配置

#日志文件
logfile /var/log/ntpd.log

#授权172.16.1.0网段上所有机器可以从这台机器上查询和时间同步
restrict 172.16.1.0 mask 225.225.225.0 nomotify notrap

#时间服务器列表
server 210.72.145.44 #中国国家授时中心
server ntp1.aliyun.com
server ntp2.aliyun.com
server ntp3.aliyun.com

#当外部时间不可用时,使用本地时间
server 127.0.0.1
fudge 127.0.0.1 stratum 10

#允许上层时间服务器主动修改本机时间
restrict 210.72.145.44 nomodify notrap noquery
restrict ntp1.aliyun.com nomodify notrap noquery
restrict ntp2.aliyun.com nomodify notrap noquery
restrict ntp3.aliyun.com nomodify notrap noquery

2.2.3 重启 ntp 服务

为了服务器重启后,ntp 服务可以正常运行,需要设置开机自启动。

[root@m-01 ~]# systemctl enable ntpd
[root@m-01 ~]# systemctl restart ntpd

2.2.4 同步时间

启动 ntp 服务时,先手动同步下本地服务器时间。

[root@m-01 ~]# ntpdate -u ntp1.aliyun.com

2.2.5 检查 ntp 服务是否启动

等待几分钟后,当出现如同第二次命令执行结果时即可。

[root@m-01 ~]# ntpstat 
unsynchronised
time server re-starting
polling server every 8 s

[root@m-01 ~]# ntpstat
synchronised to NTP server (120.25.115.20) at stratum 3
time correct to within 154 ms
polling server every 64 s

 

三、客户端配置

3.1 安装 ntp、ntpdate

[root@web-01 ~]# yum install ntp ntpdate

3.2 修改配置文件

ntp 的配置文件路径为 /etc/ntp.conf

3.2.1 注释配置

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

3.2.2 新增配置

#ntp服务器地址
server 172.16.1.61

#新增:允许上层时间服务器主动修改本机时间
restrict 172.16.1.61 nomodify notrap noquery

#新增:当外部时间不可用时,使用本地时间
server 127.0.0.1 #local clock
fudge 127.0.0.1 stratum 10

3.3 重启ntp服务

[root@web-01 ~]# systemctl enable ntpd
[root@web-01 ~]# systemctl restart ntpd

3.4 查看ntp服务器信息

[root@web-01 zabbix]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
172.16.1.61 120.25.115.20 3 u 30 64 1 0.512 -42.740 0.000
localhost .INIT. 16 l - 64 0 0.000 0.000 0.000

 

四、验证 NTP 服务

4.1 查看 ntp 服务端时间

[root@m-01 ~]# date
Sun Mar 29 00:10:52 CST 2020

4.2 修改客户端时间

[root@web-01 ~]# date -s 2020-01-01
Wed Jan 1 00:00:00 CST 2020
[root@web-01 ~]# date
Wed Jan 1 00:00:03 CST 2020

4.3 同步服务端时间

实际上,等待一段时间后客户端时间会自动同步服务端时间,这里用手动同步验证下。

[root@web-02 ~]# ntpdate -u 172.16.1.61
29 Mar 00:12:14 ntpdate[19563]: adjust time server 172.16.1.61 offset 0.008159 sec
[root@web-01 ~]# date
Sun Mar 29 00:12:22 CST 2020

4.4 配置定时任务同步时间

如果觉得自动同步时间间隔比较久,可以设定个定时任务,使用 ntpdate 命令来同步服务端时间

这里以每分钟同步为例:

[root@m-01 ~]# crontab -e 
* * * * * /usr/sbin/ntpdate -u 172.16.1.61 &> /dev/null

至此,ntp时间同步服务器搭建完成