Network Time Protocol(NTP)是用來使計算機時間同步化的一種協議,它可以使計算機對其服務器或時鍾源(如石英鍾,GPS等等)做同步化,提供高精准度的時間校正服務。
在 Centos7 中,搭建 NTP 服務器可以通過 NTP 或 Chrony 這兩種方式。Chrony 是在 7 中新加上的網絡同步功能,並且代替了 NTP 作為默認的時間同步進程。Chrony 相對於 NTP 在同步系統時間和准確性上都有了進一步的提高。
注意:NTP 是一種網絡協議,在 Linux 中搭建的是 NTP 服務器,有時簡稱為 NTP,這里不要和 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