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 是否配置成功,可通过
ntpq
或ntpstat
来验证。验证 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