Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器时钟源(如石英钟,GPS等等)做同步化,提供高精准度的时间校正服务。

在 Centos7 中,搭建 NTP 服务器可以通过 NTP 或 Chrony 这两种方式。Chrony 是在 7 中新加上的网络同步功能,并且代替了 NTP 作为默认的时间同步进程。Chrony 相对于 NTP 在同步系统时间和准确性上都有了进一步的提高。

下面将分别介绍这两种方式:

使用 Chrony 同步网络时间

Chrony 的配置很简单,通常加入同步 IP ,再重启下服务就可以了。

安装 Chrony

# centos7 默认已经安装
yum install chrony
systemctl enable chronyd
systemctl start chronyd

配置 NTP 源

vim /etc/chrony.conf

# 注释提供的 ip ,服务器大多数是内网环境, 添加内网可以同步的服务器地址
server  time.cisco.com iburst

# 允许那些网段的服务器可以从本地同步时间
# allow 192.168.100.0/24

# 重启 chronyd
systemctl restart chronyd

使用 NTP 同步网络时间

NTP 的使用和 Chrony 类似,也需要修改下配置文件。

安装 NTP 服务:

# 查询下 ntp 是否安装
rpm -qa | grep ntp
fontpackages-filesystem-1.44-8.el7.noarch
ntpdate-4.2.6p5-28.el7.centos.x86_64
ntp-4.2.6p5-28.el7.centos.x86_64

# 安装 ntp
yum install ntp
# 设置开机自启
systemctl start ntpd
systemctl enable ntpd

配置 NTP 源:

vim /etc/ntp.conf

# 加入 NTP 源 IP
server  time.cisco.com iburst

# 重启 ntpd
systemctl restart ntpd

# 在打开防火墙时,记得添加服务或者端口号 123 到防火墙列表中
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload

修改本地时区,验证网络同步是否成功

通过 timedatectl 命令来修改本机的时区,并配置 NTP 同步

# 查看相关信息
timedatectl status

(base) [root@localhost ~]# timedatectl
      Local time: Tue 2019-11-12 17:37:31 CST
  Universal time: Tue 2019-11-12 09:37:31 UTC
        RTC time: Tue 2019-11-12 09:37:32
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes # 只有自己同步时间后,才能为其他服务器提供服务
 RTC in local TZ: no
      DST active: n/a

# 手动设置日期和时间
timedatectl set-time "YYYY-MM-DD HH:MM:SS"
timedatectl set-time "YYYY-MM-DD"
timedatectl set-time "HH:MM:SS"

# 查看所有可用的时区
timedatectl list-timezones | grep  -E "Asia/S.*"

# 设置时区
timedatectl set-timezone Asia/Shanghai

# 无论是使用 chrony 还是 ntp 方法都需要设置 ntp 时间同步
timedatectl set-ntp yes

验证网络是否同步成功:

  • 验证 NTP 是否配置成功,可通过 ntpqntpstat 来验证。

  • 验证 Chrony 是否配置成功,可通过 chrony 来验证。

# 通过 ntpq 验证 ntp 配置是否成功。
[root@localhost ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*time.cisco.com  144.254.15.78    2 u   57   64  377  305.354    7.638  19.764

# 通过 ntpstat 验证 ntp 配置是否成功。
[root@localhost ~]# ntpstat
synchronised to NTP server (10.48.59.212) at stratum 3
   time correct to within 254 ms
   polling server every 128 s

# 验证 Chrony 是否配置成功
(base) [root@localhost mysql_backup]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* time.cisco.com                2  10   377   721    +18ms[  +18ms] +/-  243ms

# 查看 ntp server 是否在线
(base) [root@localhost mysql_backup]# chronyc activity -v
200 OK
1 sources online
02-12 05:18