- 時間同步:多主機協作工作時,各個主機的時間同步很重要,時間不一致會造成很多重要應用的故障,如:加密協議,日志,集群等,利用NTP(Network Time Protocol )協議使網絡中的各個計算機
- 時間達到同步。目前NTP協議屬于運維基礎架構中必備的基本服務之一時間同步實現:ntp,chrony
- ntp:將系統時鐘和世界協調時UTC同步,精度在局域網內可達0.1ms,在互聯網上絕大多數的地方精度可以達到1-50ms,項目官網:http://www.ntp.org
- chrony : 實現NTP協議的的自由軟件。可使系統時鐘與NTP服務器,參考時鐘(例如GPS接收器)以及使用手表和鍵盤的手動輸入進行同步。還可以作為NTPv4(RFC 5905)服務器和對等體運行,為網絡中的計算機提供時間服務。設計用于在各種條件下良好運行,包括間歇性和高度擁擠的網絡連接,溫度變化(計算機時鐘對溫度敏感),以及不能連續運行或在虛擬機上運行的系統。通過Internet同步的兩臺機器之間的典型精度在幾毫秒之內,在LAN上,精度通常為幾十微秒。利用硬件時間戳或硬件參考時鐘,可實現亞微秒的精度
一、系統時間修改命令timedatectl
系統時間及時區的管理
timedatectl set-time "2024-02-13 10:41:55" ##設定系統時間
timedatectl list-timezones ##顯示系統的所有時區
timedatectl set-time "Asia/Shanghai" ##設定系統時區
timedatectl set-local-rtc 0|1 ##設定系統時間計算方式##0表示使用utc時間計算方式
?
公共ntp地址
- www.ntppool.org : 項目是一個提供可靠易用的NTP服務的虛擬集群,[0-3].asia.pool.ntp.org
- ?阿里云公共NTP服務器
- Unix/linux類: ntp.aliyun.com,ntp1-7.aliyun.com
- windows類: time.pool.aliyun.com
- 國家授時中心服務器:ntp.ntsc.ac.cn
使用公共NTP服務器
- 在RHEL 9 中使用的同步時間軟件為hrony
- chrony由兩個程序組成,分別是chronyd和chronyc
- chronyd是一個后臺運行的守護進程,用于調整內核中運行的系統時鐘和時鐘服務器同步。它確定計算機增減時間的比率,并對此進行補償。
- chronyc提供了一個用戶界面,用于監控性能并進行多樣化的配置。它可以在chronyd實例控制的計算機上工作,也可以在一臺不同的遠程計算機上工作
- chrony作為client使用方法如下:
-
]# dnf install chrony -y ]# vim /etc/chront.conf server ntp.ntsc.ac.cn iburst #server 指定時鐘服務器地址#iburst 當服務器可達時,發送一共八個數據包#包間隔通常為2秒,可加快初始同步速度
二、使用網絡時間源同步時間
顯示同步信息
在RHEL9中我們chronyc來查看時間同步情況
]# choronyc sources -v
M | 時間源模式^表示服務器,=表示對等方,#表示本地連接的參考時鐘 |
S | 指源的狀態 表示chronyd當前已經同步到的源 |
+ | 表示可接受的信號源,與選定的信號源組合在一起 表示被合并算法排除的可接受源 |
? | 指已失去連接性或者其數據包未通過所有測試的源 |
x | 表示chronyd認為是虛假行情的時鐘,即標記該時間與其他多數時間不一致 |
~ | 表示時間似乎具有太多可變性 |
Name/IP address | 顯示源的名稱或IP地址 |
Stratum | 顯示時間來源的層 |
Poll | 顯示輪詢源的速率 |
Reach | 顯示源的可達性寄存器以八進制數字打印 |
LastRx | 顯示多長時間從來源接受到了最后一個好的樣本 |
Last sample | 此列顯示上次測量時本地時鐘與源之間的偏移 |
三、部署本地時間源方法
192.168.18.128/24
systemctl stop chronyd.service
timedatectl set-time "2026-11-11 11:11:11"
date
date 111111112026.11
vim /etc/chrony.conf
pool 192.168.18.134 iburst
pool 2.rhel.pool.ntp.org iburst
systemctl restart chronyd.service
vim /etc/chrony.conf 192.168.18.134/24
allow 0.0.0.0/0
local stratum 10
systemctl restart chronyd.service
systemctl stop firewalld
chronyc sources -v
netstat -antlupe | grep chronyd
watch -n 1 date