网络时间协议-NTP是一个运行在传输层UDP端口123的协议,并且允许计算机通过网络通过一个准确的时间。随着时间流逝,计算机内部时钟倾向漂移,这回导致时间不一致的问题,尤其在服务器和客户端记录文件或者如果你想要复制服务器资源或数据库。

本教程将演示如何在CentOS/RHEL 7上安装和配置NTP服务器并且通过使用NTP公共池时间服务器列表自动与你服务器位置地理上最近可用的机器同步时间。

第一步:安装和配置NTP守护程序

1) 默认从官方CentOS/RHEL 7仓库提供了NTP服务器软件包,并且通过发出以下命令安装它。

[root@localhost areadetector]# yum install ntp
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.bfsu.edu.cn
 * updates: mirrors.163.com
Package ntp-4.2.6p5-29.el7.centos.2.x86_64 already installed and latest version
Nothing to do

2) 在安装了这个服务器后,首先进入官方NTP Public Pool Time Servers,选择你服务器物理所在的Content区域,接着搜索你的Country位置并且一个NTP服务器的列表应该出现了。

CentOS7部署OwnCloud centos7部署ntp服务器_运维

3) 接着打开NTP守护程序主配置文件(/etc/ntp.conf)来编辑,注意掉来自pool.ntp.org项目的默认公共服务器列表并且用为你国家提供的列表替换它。

#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
server 0.cn.pool.ntp.org iburst
server 1.cn.pool.ntp.org iburst
server 2.cn.pool.ntp.org iburst
server 3.cn.pool.ntp.org iburst

 4) 你需要来自你网络的客户端与这个服务器同步时间。要实现这个目标,添加以下行到NTP配置文件,此处restrict语句块控制允许什么网络请求和同步时间--相应地替代网络IPs。

restrict 192.168.3.0 netmask 255.255.255.0 nomodify notrap

nomodify notrap语句建议你地客户端不被允许配置这个服务区或者被用作时间同步的机器。

5) 如果你需要用于排除错误的更多信息,以防你的NTP守护程序出现了问题,添加一个日志文件声明,这将记录所有NTP服务其问题到一个指定的日志文件。

6)在你用以上解释的所有配置文件编辑了这个文件后,保存和关闭ntp.conf文件。

第二步:添加防火墙规则并且启动NTP守护程序

7) NTP服务区使用在OSI传输层上UDP端口123。它被设置成抵抗可变延时的影响。要打开RHEL/CentOS7上这个端口,对防火墙服务使用以下命令。

[root@localhost areadetector]# firewall-cmd --add-service=ntp --permanent
success
[root@localhost areadetector]# firewall-cmd --reload
success
[root@localhost areadetector]#

8) 在你打开了防火墙端口123后,启动NTP服务区并且确认你在整个系统使能它。使用以下命令管理这个服务。

[root@localhost areadetector]# systemctl start ntpd
[root@localhost areadetector]# systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
[root@localhost areadetector]# systemctl status ntpd
● ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-07-19 11:21:37 CST; 13s ago
 Main PID: 24190 (ntpd)
   CGroup: /system.slice/ntpd.service
           └─24190 /usr/sbin/ntpd -u ntp:ntp -g

第三步:验证服务器时间同步

9) 在NTP已经启动后,等待几分钟用于此服务区与它的池列表服务器同步时间,接着运行以下命令来验证NTP服务器机器同步状态和你的系统时间。

[root@localhost areadetector]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*tick.ntp.infoma .GPS.            1 u   23   64   37  228.427   -0.247  15.146
 ntp1.flashdance 194.58.202.148   2 u   33   64    5  319.103  -30.128  24.266
+time.cloudflare 10.23.8.4        3 u   29   64   37   27.331  -25.504  17.885
+de-user.deepini 195.13.23.5      3 u   23   64   37  290.728  -26.818  11.038
[root@localhost areadetector]# date -R
Tue, 19 Jul 2022 11:26:53 +0800

10) 如果你想要对照你选择的一个池查询和同步,使用后跟服务器或者服务器地址的ntpdate命令。

[root@localhost areadetector]# ntpdate -q  0.cn.pool.ntp.org
server 162.159.200.1, stratum 3, offset -0.064532, delay 0.09660
server 219.216.128.25, stratum 2, offset -0.055671, delay 0.07637
server 202.118.1.81, stratum 1, offset -0.054413, delay 0.06798
server 193.182.111.141, stratum 2, offset -0.055168, delay 0.34297
19 Jul 11:30:10 ntpdate[27335]: adjust time server 202.118.1.81 offset -0.054413 sec