CentOS 7安裝配置Chrony同步系統時間服務器


一、簡單介紹:

Chrony是NTP(Network Time Protocol,網絡時間協議,服務器時間同步的一種協議)的另一種實現,與ntpd不同,它可以更快且更准確地同步系統時鍾,最大程度的減少時間和頻率誤差。

Chrony包括兩個核心組件:

1、chronyd:一個后台運行的守護進程,用於調整內核中運行的系統時鍾與NTP服務器同步。它確定服務器增減時間的比率,並對此進行調整補償;

2、chronyc:提供用戶界面,用於監控性能並進行多樣化的配置。它可以在chronyd實例控制的服務器上工作,也可以在一台不同的遠程服務器上工作。

 

二、演示環境:

IP

主機名

操作系統

服務器角色

描述

時間同步方式

192.168.1.146

ntp-server

CentOS   7.6

內網NTP Server

向阿里雲提供的公網NTP服務器同步時間

作為內網NTP Server,內網中的其它服務器向其同步時間

chronyd服務平滑同步

192.168.1.147

ntp-client1

CentOS   7.6

內網NTP Client

向內網NTP Server 192.168.1.146同步時間

chronyd服務平滑同步

192.168.1.148

ntp-client2

CentOS   7.6

內網NTP Client

向內網NTP Server 192.168.1.146同步時間

crontab   + ntpdate強制同步

備注:使用chronyd服務平滑同步時間的方式要優於crontab + ntpdate,因為ntpdate同步時間會造成時間的跳躍,對一些依賴時間的程序和服務會造成影響,例如:sleeptimer等,且chronyd服務可以在修正時間的過程中同時修正CPU tick

 

三、192.168.1.146配置內網NTP Server:

1、關閉firewalld防火牆

2、關閉SELinux

3、配置主機名ntp-server:

# echo "192.168.1.146 ntp-server" >> /etc/hosts

# vim /etc/hostname --> ntp-server

# hostnamectl set-hostname ntp-server

# logout

Ctrl + Shift + r

# hostname

4、查看當前服務器時間:# date

image.png

5、安裝並配置chrony:

# yum -y install chrony

# mv /etc/chrony.conf /etc/chrony.conf.bak

# vim /etc/chrony.conf,新增如下代碼:

指定上層NTP服務器為阿里雲提供的公網NTP服務器

server ntp1.aliyun.com iburst minpoll 4 maxpoll 10

server ntp2.aliyun.com iburst minpoll 4 maxpoll 10

server ntp3.aliyun.com iburst minpoll 4 maxpoll 10

server ntp4.aliyun.com iburst minpoll 4 maxpoll 10

server ntp5.aliyun.com iburst minpoll 4 maxpoll 10

server ntp6.aliyun.com iburst minpoll 4 maxpoll 10

server ntp7.aliyun.com iburst minpoll 4 maxpoll 10

記錄系統時鍾獲得/丟失時間的速率至drift文件中

driftfile /var/lib/chrony/drift

如果系統時鍾的偏移量大於10秒,則允許在前三次更新中步進調整系統時鍾

makestep 10 3

啟用RTC(實時時鍾)的內核同步

rtcsync

只允許192.168.1網段的客戶端進行時間同步

allow 192.168.1.0/24

阿里雲提供的公網NTP服務器不可用時,采用本地時間作為同步標准

local stratum 10

指定包含NTP驗證密鑰的文件

keyfile /etc/chrony.keys

指定存放日志文件的目錄

logdir /var/log/chrony

chronyd在選擇源時忽略源的層級

stratumweight 0.05

禁用客戶端訪問的日志記錄

noclientlog

如果時鍾調整大於0.5秒,則向系統日志發送消息

logchange 0.5

備注:詳細指令參數可以使用命令# man chrony.conf查看

6、啟動chronyd服務:

# systemctl start chronyd.service

# systemctl status chronyd.service

image.png

# ss -tunlp | grep chronyd

image.png

# systemctl enable chronyd.service

7、查看時間同步源:# chronyc sources -v

image.png

備注:120.25.115.20為ntp1.aliyun.com域名解析后的地址,203.107.6.88為ntp2.aliyun.com~ntp7.aliyun.com域名解析后的地址

8、查看時間同步源狀態:# chronyc sourcestats -v

image.png

說明:
^* #已同步
^? #未同步
192.168.2.25 #時間服務器IP

備注:可直接輸入命令chronyc進入交互式模式

image.png

常用指令說明:

Ø  help:查看完整的命令幫助列表

Ø  tracking:顯示系統時間信息

Ø  activity:檢查多少NTP源在線/離線

Ø  add server:手動添加一台新的NTP服務器

Ø  delete:手動移除NTP服務器或對等服務器

Ø  accheck:檢查NTP訪問是否對特定主機可用

Ø  clients:在客戶端報告已訪問到的服務器

說明:chronydchronyc的詳細使用方法可以使用命令# man chronyd# man chronyc查看

 

四、192.168.1.147配置內網NTP Client:

1、關閉firewalld防火牆

2、關閉SELinux

3、配置主機名ntp-client1:

# echo "192.168.1.147 ntp-client1" >> /etc/hosts

# vim /etc/hostname --> ntp-client1

# hostnamectl set-hostname ntp-client1

# logout

Ctrl + Shift + r

# hostname

4、查看當前服務器時間:# date

image.png

5、安裝並配置chrony:

# yum -y install chrony

# mv /etc/chrony.conf /etc/chrony.conf.bak

# vim /etc/chrony.conf,新增如下代碼:

server 192.168.1.146 iburst

driftfile /var/lib/chrony/drift

makestep 10 3

rtcsync

local stratum 10

keyfile /etc/chrony.keys

logdir /var/log/chrony

stratumweight 0.05

noclientlog

logchange 0.5

6、啟動chronyd服務:

# systemctl start chronyd.service

# systemctl status chronyd.service

image.png

# ss -tunlp | grep chronyd

image.png

# systemctl enable chronyd.service

7、查看時間同步源:# chronyc sources -v

image.png

8、查看時間同步源狀態:# chronyc sourcestats -v

image.png

 

五、192.168.1.148配置內網NTP Client:

1、關閉firewalld防火牆

2、關閉SELinux

3、配置主機名ntp-client2:

# echo "192.168.1.148 ntp-client2" >> /etc/hosts

# vim /etc/hostname --> ntp-client2

# hostnamectl set-hostname ntp-client2

# logout

Ctrl + Shift + r

# hostname

4、查看當前服務器時間:# date

image.png

5、安裝ntpdate:# yum -y install ntpdate

6、編寫定時任務,實現每3分鍾向192.168.1.146同步一次時間,並將系統時間設置為硬件時間

# crontab -e --> */3 * * * * /usr/sbin/ntpdate 192.168.1.146 &> /dev/null;/usr/sbin/hwclock -w

# crontab -l

# systemctl enable crond.service

7、測試定時任務:將時間調慢,觀察服務器時間是否會自動同步

image.png

8、檢查3台服務器的時間是否一致:

image.png

image.png

image.png

 

六、Windows 10自動定期同步阿里雲Windows公共NTP服務器:

Win + r --> control panel --> 查看方式選擇“類別”--> 時鍾和區域 --> 日期和時間 --> Internet時間 --> 更改設置 --> 輸入阿里雲Windows公共NTP服務器地址time.pool.aliyun.com --> 立即更新

image.png

image.png

image.png

 

 

 

 

systemctl restart chronyd ###重起時間同步服務
systemctl stop firewalld ###火牆沒關的話需要關閉
timedatectl set-timezone Asia/Shanghai ###更改當前時區為東8區【統一時區,亞洲上海】

在客戶端上:

vim /etc/chrony.conf ###編輯時間同步配置文件
server ip iburst ###選擇要同步的服務器【本機立即同步該ip主機的時間】
systemctl restart chronyd ###重起時間同步服務
timedatectl set-timezone Asia/Shanghai ###更改當前時區為東8區【統一時區,亞洲上海】

客戶端測試:

chronyc sources -v ###結果為^*則同步完成

1.服務器編輯同步配置文件,重起服務,關閉火牆,修改時區


2.客戶端編輯配置文件,重起服務,設置時區


3.客戶端測試:chronyc sources -v【注意左下角^*】

同步完成,客戶時間已經同步服務器。

二:時間設定:\color{blue}{二:時間設定:}二:時間設定:

vim /etc/adjtime ###查看系統默認時間顯示的是哪個區域的【UTC】

timedatectl set-time "2019-04-13 10:10:10" ###更改時間

timedatectl set-timezone Asia/Shanghai ###更改時區

timedatectl list-timezone ###查看支持的所有時區

timedatectl set-local -rtc 0|1 ###設定/etc/adjtime中的時間顯示格式
【是否使用UTC時間,0為使用,1為不使用】

演示:
1. vim /etc/adjtime ###查看系統默認時間顯示的是哪個區域的【UTC】


2. timedatectl set-local -rtc 0|1 ###設定/etc/adjtime中的時間顯示格式

其他不做在此演示。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM