1、NTP服務概述
在Linux服務器上擁有准確的系統時間非常重要,因為[Cron]和[Anacron]等多個系統組件,[備份腳本]以及更多基於時間的工作。使用網絡時間協議(NTP)協議可以實現精確的計時。
NTP是一種古老的,廣為人知的跨平台協議,旨在[通過網絡同步計算機的時鍾]。它通常將計算機與Internet時間服務器或其他源(例如無線電或衛星接收器或電話調制解調器服務)同步。它也可以用作客戶端系統的時間源/服務器。
在RHEL Linux 8中,不再支持ntp軟件包,它由chrony軟件包中提供的chronyd(在用戶空間中運行的守護程序)實現。
Chrony是[網絡時間協議(NTP)]的靈活實現。它用於同步來自不同NTP服務器的系統時鍾,參考時鍾或通過手動輸入。
它也可以用於NTPv4服務器為同一網絡中的其他服務器提供時間服務。它旨在在不同的條件下完美運行,例如間歇性網絡連接,網絡負載過重,溫度變化,這可能會影響普通計算機的時鍾。
Chrony帶有兩個程序:
- chronyc – chrony的命令行界面
- chronyd –可以在啟動時啟動的守護程序
在本教程中,我們將向您展示如何在Linux系統上安裝和使用Chrony。
在本文中,我們將向您展示如何使用RHEL 8 Linux發行版中的chrony軟件包安裝和配置NTP服務器和客戶端。
2、測試環境
NTP服務端 | NTP 客戶端 | |
---|---|---|
主機名 | ntpserver | ntpclient |
IP信息 | 192.168.6.58 | 192.168.6.149 |
3、CentOS8中安裝Chrony服務
# dnf install chrony
所述chrony套件包括chronyd,和chronyc,這是用來改變各種操作參數和同時它正在運行以監控其性能的命令行實用程序。
現在啟動chronyd服務,使其能夠在系統啟動時自動啟動,並使用以下[systemctl命令]驗證運行狀態
# systemctl start chronyd
# systemctl status chronyd
# systemctl enable chronyd
4、CentOS8中使用Chrony配置NTP服務器
在本節中,我們將展示如何將RHEL 8服務器設置為主NTP時間服務器。/etc/chrony.conf
使用任何您[喜歡的基於文本的編輯器]打開配置文件。
vi /etc/chrony.conf
server time1.aliyun.com iburst
server time2.aliyun.com iburst
server time3.aliyun.com iburst
server time4.aliyun.com iburst
server time5.aliyun.com iburst
server time6.aliyun.com iburst
server 0.asia.pool.ntp.org iburst
server 1.asia.pool.ntp.org iburst
server 2.asia.pool.ntp.org iburst
server 3.asia.pool.ntp.org iburst
server cn.ntp.org.cn iburst
server ntp.shu.edu.cn iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 10.10.0.0/16
allow 192.168.6.0/24
allow 192.168.0.0/24
allow 10.57.0.0/24
allow 10.58.0.0/24
allow 192.168.4.0/24
allow 9.112.2.26/24
allow 198.203.144.0/24
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony
上面的配置提供以下信息:
- 服務器-此指令用於描述要從其同步的NTP服務器。
- 地層重量–每個地層應向同步源添加多少距離。默認值為0.0001。
- driftfile -包含漂移數據的文件的位置和名稱。
- Makestep –該指令通過根據需要加快或降低時鍾的速度,使chrony逐步糾正任何時間偏移。
- logdir – chrony日志文件的路徑。
因此,請注釋掉指定為server指令值的默認NTP服務器,並改為設置RHEL 8服務器的地址。
如果要立即步進系統時鍾並忽略當前正在進行的任何調整,則可以使用以下命令:
#chronyc makestep
現在,運行以下命令以顯示chronyd正在訪問的當前時間源(NTP服務器),它應該是您的NTP服務器地址。
[root@ntpserver ~]# systemctl restart chronyd
[root@ntpserver ~]# chronyc sources
210 Number of sources = 9
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 203.107.6.88 2 6 7 0 +1354us[+1354us] +/- 20ms
^? tock.ntp.infomaniak.ch 1 6 3 1 +19ms[ +19ms] +/- 141ms
^? time1.maxonline.com.sg 0 6 0 - +0ns[ +0ns] +/- 0ns
^? cdns-lhr-02.ptcl.net.pk 2 6 2 5 +14ms[ +14ms] +/- 294ms
^? undefined.hostname.local> 2 6 1 1 +5532us[+6376us] +/- 95ms
^? 202-65-114-202.jogja.cit> 0 6 0 - +0ns[ +0ns] +/- 0ns
^? 101-210-1-103.vtx.zinnia> 2 6 3 1 +771us[+1616us] +/- 233ms
^? 111.230.50.201 4 6 5 1 +1040us[+1548us] +/- 73ms
^? ntp.shu.edu.cn 3 6 5 2 +21ms[ +22ms] +/- 115ms
[root@ntpserver ~]#
在服務器上,運行以下命令以顯示有關評估NTP服務器的NTP客戶端的信息。
# chronyc clients
如果停止chrony,則可以使用以下命令。
# systemctl stop chrony
5、CentOS8 配置NTP客戶端。
[1] 客戶端配置與服務器配置基本相同,但是NTP客戶端不需要從其他主機接收時間同步請求,因此不需要指定行[allow ***]。
[root@ntpclient ~]# dnf -y install chrony
[root@ntpclient ~]# cat /etc/chrony.conf
server 192.168.6.58 iburst
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony
log measurements statistics tracking
[root@ntpclient ~]# systemctl enable --now chronyd
Created symlink /etc/systemd/system/multi-user.target.wants/chronyd.service → /usr/lib/systemd/system/chronyd.service.
[root@ntpclient ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 192.168.6.58 0 7 0 - +0ns[ +0ns] +/- 0ns
[2] 要安裝NTPStat,可以顯示時間同步狀態。
[root@ntpclient ~]# dnf -y install ntpstat
[root@ntpclient ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.6.58 3 6 37 11 -111ns[-1892us] +/- 23ms
[root@ntpclient ~]# ntpstat
synchronised to NTP server (192.168.6.58) at stratum 4
time correct to within 23 ms
polling server every 64 s
[root@ntpclient ~]# timedatectl
Local time: Fri 2020-12-04 22:09:15 CST
Universal time: Fri 2020-12-04 14:09:15 UTC
RTC time: Fri 2020-12-04 14:09:15
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
[root@ntpclient ~]#