CentOS7下同步時間的幾種方式(NTP 、Chrony和systemd-timesyncd)

文章目錄

  • 前言
  • 一、NTP (Network Time Protocol) & ntpd
    • 1.原理
    • 2. 安裝與配置(ntp 包)
    • 3.NTPd 優缺點對比
  • 二、Chrony
    • 1.原理
    • 2.安裝與配置 (`chrony` 包)
    • 3. 優點
    • 4. 缺點
  • 三、systemd-timesyncd
    • 1.原理
    • 2.安裝與配置 (systemd 自帶)
    • 3. 優點
    • 4. 缺點
  • 四、手動同步工具
    • 1.ntpdate`(已廢棄,不推薦)
    • 2. date 命令
  • 五、關鍵操作與注意事項
    • 1. 防火墻
    • 2. 硬件時鐘 (RTC) 同步
    • 3. 時區設置
    • 4. 服務選擇建議
  • 總結

前言

在 CentOS 7 中,保持系統時間準確至關重要,尤其對于集群、數據庫、日志記錄等場景。主要的時間同步方式和工具有 ntpd (NTP daemon)、chronyd (Chrony daemon) 和 systemd-timesyncd

一、NTP (Network Time Protocol) & ntpd

1.原理

*   使用 NTP 協議 (UDP 端口 123)
*   客戶端 (ntpd) 與一個或多個 NTP 服務器通信
*   通過交換帶有時間戳的數據包,計算網絡延遲 (delay) 和時間偏差 (offset)
*   采用復雜算法(如 Marzullo 算法、時鐘篩選、組合)過濾噪聲,選擇最可靠的服務器
*   通過 漸進式調整 系統時鐘(slew)來糾正偏差(每秒最多調整幾毫秒),避免時間跳變,對依賴連續時間的應用友好。只有在啟動時偏差過大 (>128ms 或 panic 閾值) 才會進行階躍調整 (step)。 
*   維護一個持續的頻率漂移校正模型,即使暫時斷網也能保持一定精度

2. 安裝與配置(ntp 包)

# 安裝
sudo yum install ntp
# 主配置文件:/etc/ntp.conf
# 編輯配置文件,指定 NTP 服務器池或服務器
sudo vim /etc/ntp.conf

在這里插入圖片描述

示例配置片段

# 使用 CentOS 官方池
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst# 允許本地網絡客戶端同步 (可選)
# restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
  • iburst: 初始啟動時發送 8 個數據包加速同步
  • restrict ... nomodify notrap: 允許指定網絡查詢時間但不允許修改配置或設置陷阱
# 啟動服務并設置開機自啟
sudo systemctl start ntpd
sudo systemctl enable ntpd
# 查看同步狀態
ntpq -pn

在這里插入圖片描述
在這里插入圖片描述

  • ntpq -pn 輸出解釋:
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-162.159.200.1   10.107.8.118     3 u   28   64    3  359.100  -70.096  38.033
+95.111.202.5    106.10.186.200   3 u   28   64    3  165.314    0.278  52.889
*202.118.1.81    202.118.1.46     2 u   27   64    3   51.261    2.783  10.046
+185.209.85.222  130.173.91.58    2 u   25   64    3  247.237  -21.915  12.004
  • * 表示當前優選的時間源
  • remote: NTP 服務器 IP
  • offset: 本地時間與服務器時間的偏差 (ms)。負數表示本地時間慢
  • delay: 網絡延遲 (ms)
  • jitter: 偏移量的平均偏差 (ms)

3.NTPd 優缺點對比

類別優點缺點
歷史與穩定歷史悠久,穩定可靠,算法成熟啟動和收斂速度相對較慢(尤其初始同步)
時間調整漸進調整(slew)避免時間跳變,適合數據庫、交易系統對間歇性網絡連接或高延遲網絡適應性不如 chrony
斷網表現頻率漂移模型在斷網時維持精度資源消耗略高于 chrony
工具支持強大的日志和監控工具(ntpqntpstat默認配置下處理大時間偏差(>1000s)需要手動干預(ntpd -gq

二、Chrony

1.原理

*   CentOS 7 的默認時間同步工具(chronyd服務)
*   兼容 NTP 協議,但算法更先進
*   能更快適應網絡不穩定、間歇性連接(如筆記本、移動設備)
*   在啟動時或時間偏差較大時,能更快地大幅糾正時間 (step) 或快速調整 (slew)
*   更精確地處理時鐘頻率漂移,尤其適合虛擬化環境(因虛擬化時鐘常不穩定)
*   支持 NTP 和 PTP (需硬件支持) 時間源
*   提供 chronyc 命令行工具進行實時監控和控制

2.安裝與配置 (chrony 包)

# 安裝 (通常默認已安裝)
sudo yum install chrony# 主配置文件:/etc/chrony.conf
# 編輯配置文件
sudo vim /etc/chrony.conf

在這里插入圖片描述

示例配置片段

# 使用阿里云公共 NTP 服務器
server ntp.aliyun.com iburst
server time1.cloud.tencent.com iburst# 允許特定網絡同步 (可選)
# allow 192.168.1.0/24# 啟用內核實時時鐘 (RTC) 同步
rtcsync# 記錄頻率漂移
driftfile /var/lib/chrony/drift# 日志目錄
logdir /var/log/chrony
  • iburst: 同 ntpd,加速初始同步
  • rtcsync: 定期將系統時間同步到硬件時鐘 (RTC)
  • driftfile: 存儲計算出的時鐘頻率漂移值
# 啟動服務并設置開機自啟
sudo systemctl start chronyd
sudo systemctl enable chronyd# 查看狀態
chronyc tracking      # 顯示系統時間信息
chronyc sources -v    # 查看時間源及其狀態

在這里插入圖片描述
在這里插入圖片描述

  • chronyc sources -v 輸出解釋:
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^- ntp8.flashdance.cx            2   6   377    10  -2300us[-2300us] +/-   94ms
^- stratum2-1.ntp.mow01.ru.>     2   6   177     6  +8681us[+8681us] +/-   83ms
^* time.neu.edu.cn               2   6   377    11  -1442us[-1609us] +/-   28ms
^- time.cloudflare.com           3   6    37    11  +4486us[+4486us] +/-  117ms
  • ^*: 當前最優時間源。
  • Stratum: 時間源的層級 (數字越小越接近原子鐘)。
  • Last sample: [offset] 是本地時間與源時間的偏差。

3. 優點

  • 啟動快、收斂快,特別適合不穩定的網絡環境
  • 處理大時間偏差能力強,自動執行階躍或快速調整
  • 虛擬機和動態網絡中表現更優
  • 資源占用低
  • 配置靈活,支持 NTPPTP
  • chronyc 提供強大實時控制能力

4. 缺點

  • 相比 ntpd,在某些極端穩定網絡下長期穩定性可能略遜(但差距極小)
  • 歷史不如 ntpd 悠久(但已是主流且默認選擇)

三、systemd-timesyncd

1.原理

*   systemd 生態提供的輕量級 SNTP (Simple NTP) 客戶端
*   只實現 NTP 客戶端的基本功能,不支持作為 NTP 服務器
*   使用 timedatectl 命令管理。
*   設計目標是提供基本的時間同步,適合桌面或不需要高精度/復雜配置的系統
*   同步間隔較長(通常幾分鐘一次)

2.安裝與配置 (systemd 自帶)

# 通常默認已安裝并啟用
# 主配置文件:/etc/systemd/timesyncd.conf
sudo vim /etc/systemd/timesyncd.conf

示例配置片段

[Time]
# 指定 NTP 服務器
NTP=ntp.aliyun.com time1.cloud.tencent.com
# FallbackNTP=0.centos.pool.ntp.org
# 重啟服務
sudo systemctl restart systemd-timesyncd# 查看狀態
timedatectl status
  • timedatectl status 輸出中包含:
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

3. 優點

  • 極其輕量級,零額外依賴
  • 集成于 systemd,管理統一 (timedatectl)
  • 配置簡單

4. 缺點

  • 功能簡陋:僅作客戶端,不支持服務器模式、復雜過濾、頻率漂移補償等
  • 精度和魯棒性低于 ntpdchronyd
  • 同步間隔長,不適合高精度場景
  • 無法精細監控

四、手動同步工具

1.ntpdate`(已廢棄,不推薦)

  • 原理
    • 一次性查詢 NTP 服務器并立即階躍 (step) 調整系統時間
  • 操作
 sudo ntpdate ntp.aliyun.com
  • 缺點:
    • 中斷性:階躍調整導致時間跳變,可能引發應用錯誤(日志混亂、交易失敗)
    • 精度差:單次測量易受網絡抖動影響
    • 無持續補償:執行后即結束
    • ntpd/chronyd 沖突:不能同時運行
  • 強烈建議避免在生產環境使用。如需階躍調整,優先使用:
sudo chronyc makestep     # Chrony 手動階躍
sudo ntpd -gq            # ntpd 在啟動前強制同步 (需先停止 ntpd 服務)

2. date 命令

  • 原理
    • 手動設置系統時間
  • 操作
sudo date -s "2024-04-15 14:30:00"  # 設置具體時間
sudo date +%T -s "14:30:00"          # 僅設置時間 (保留日期)
  • 缺點
    • 完全手動,精度依賴操作者,無網絡同步能力。僅用于臨時調試或初始化

五、關鍵操作與注意事項

1. 防火墻

  • NTP 使用 UDP 123 端口
  • 確保防火墻允許出站訪問 NTP 服務器
sudo firewall-cmd --add-service=ntp --permanent
sudo firewall-cmd --reload

2. 硬件時鐘 (RTC) 同步

  • 系統時間 (clock) 在重啟后從硬件時鐘加載——確保兩者一致
# 將當前系統時間寫入硬件時鐘
sudo hwclock --systohc
# 查看硬件時鐘時間
sudo hwclock --show
  • ntp.conf (使用 ntpd) 或 chrony.conf (使用 chronyd 并設置 rtcsync) 中配置,服務會自動定期同步

3. 時區設置

  • 時間同步解決的是 UTC 時間問題——顯示時間需正確設置時區
# 列出可用時區
timedatectl list-timezones# 設置時區 (如 Asia/Shanghai)
sudo timedatectl set-timezone Asia/Shanghai# 檢查
timedatectl

4. 服務選擇建議

  • 絕大多數 CentOS 7 服務器:首選 chronyd (默認且優秀)
  • 需要非常傳統或特定 NTP 功能/生態:考慮 ntpd
  • 輕量級桌面/簡單設備:systemd-timesyncd 足夠

總結

1.對于 CentOS 7 服務器環境,chronyd 是最佳、最推薦的時間同步解決方案,平衡了速度、精度、資源消耗和網絡適應性
2.除非有特定兼容性要求,否則無需使用 ntpd
3.systemd-timesyncd 僅適用于要求極低的場景
對比表

特性ntpd (NTP)chronyd (Chrony)systemd-timesyncdntpdate (廢棄)
定位成熟穩定的 NTP 實現現代、快速、適應性強的默認工具輕量級 SNTP 客戶端一次性時間設置工具
啟動/收斂速度較慢極快一次執行
網絡適應性穩定網絡好不穩定/動態網絡極佳一般依賴單次網絡質量
時間偏差處理主要靠漸進 (slew),大偏差需手動自動階躍或快速調整 (slew/step)階躍調整強制階躍調整
精度高 (尤其虛擬化)一般低 (單次測量)
資源占用中等極低執行時占用
作為 NTP 服務器支持支持不支持不支持
配置復雜度中等中等簡單簡單
監控工具ntpq, ntpstatchronyctimedatectl
推薦場景傳統環境/特定需求默認選擇/服務器/虛擬機桌面/簡單設備避免使用

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917130.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917130.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917130.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Web3:在 VSCode 中基于 Foundry 快速構建 Solidity 智能合約本地開發環境

相關文章推薦鏈接Web3專欄https://blog.csdn.net/qq_42392981/category_13016259.html在 VSCode 中基于 Foundry 快速構建 Solidity 智能合約本地開發環境引言1. 開發環境準備(Windows)1.1 安裝 VSCode1.2 安裝推薦插件1.3 安裝 Foundry1.4 驗證 Forge 和…

Implement recovery based on PITR using dump file and binlog

模擬生產場景中需要基于某個事務點的恢復,使用存量備份與存量binlog 生成測試數據 (rootlocalhost) [(none)]> create database NanJing; Query OK, 1 row affected (0.01 sec) (rootlocalhost) [test]> use NanJing; Database changed (rootlocalhost) [NanJ…

HTML-取消div,a等標簽點擊效果

一、背景當標簽被設置onclick事件之后,在有些手機瀏覽器中,點擊這些標簽,會有點擊變色效果。想要取消點擊變色效果。通過為div和標簽元素添加-webkit-tap-highlight-color樣式屬性,可以有效地解決這一問題二、解決方案已a標簽示例…

VR 三維重建:開啟沉浸式體驗新時代

在科技飛速發展的今天,VR(虛擬現實)技術已經逐漸滲透到我們生活的各個領域,為我們帶來了前所未有的沉浸式體驗。而 VR 三維重建作為 VR 技術的重要應用之一,更是讓人們能夠身臨其境地感受各種場景,無論是旅…

iTwinjs 幾何 - Curve

CurvePrimitive 常用的見下 LineSegment3d直線段兩點直線邊、桿件、骨架LineString3d折線多點連續直線輪廓線、路徑Arc3d圓弧 / 橢圓弧圓心 半徑 起止角圓孔、圓角、弧段BezierCurve3d貝塞爾曲線端點 控制點平滑過渡、動畫軌跡BSplineCurve3dB 樣條 / NURBS控制點 節點矢…

iPhone 恢復出廠設置是否會刪除所有內容?

當你的 iPhone 經常崩潰、出現黑屏死機、卡在加載屏幕上等問題時,你可能會考慮進行恢復出廠設置來修復它。或者在其他情況下,如果你要將使用多年的設備交給新主人,出于安全考慮,也需要進行恢復出廠設置。那么,恢復出廠…

機器學習②【字典特征提取、文本特征處理(TF-IDF)、數據標準化與歸一化、特征降維】

文章目錄先言一、特征工程概述二、特征提取1.字典特征提取(特征離散化)2.文本特征提取2.1英文文本提取2.2中文文本提取(jieba分詞器)3.TfidfVectorizer TF-IDF文本特征詞的重要程度特征提取三、數據歸一化與標準化1.MinMaxScaler …

3、CC3200串口DMA

先說下CC3200存在2個16*8的fifos, 分別用于發送和接收 當fifos被disable時,將會作為一個1字節深度的保持寄存器, 所以無論fifos是開是關,發送和接收都繞不開fifos DMA 由于發送和接收都繞不過fifos,所以DMA也繞不開FIFOS. MAP_UARTFIFOLevelS…

從游戲NPC到手術助手:Agent AI重構多模態交互,具身智能打開AGI新大門

注:此文章內容均節選自充電了么創始人,CEO兼CTO陳敬雷老師的新書《GPT多模態大模型與AI Agent智能體》(跟我一起學人工智能)【陳敬雷編著】【清華大學出版社】 清華《GPT多模態大模型與AI Agent智能體》書籍配套視頻課程【陳敬雷…

Lesson 29 Taxi!

Lesson 29 Taxi! taxi n.出租車 同義詞:cab n.出租車 相關:taxi meter計價器 taxi stand taxi rank 出租車站 call ataxi 叫車,打車 例句:對不起,請問出租車站在哪里? Excuse me, do you know where the taxi rank is please? land v.著陸,登陸n.陸地…

怎樣將allegro的brd文件轉化為AD的PCB文件

由于工作需要將allegro的PCB轉成ad給同事,在使用AD軟件導入Allegro的brd格式文件時出現各種的異常報錯彈窗問題,現分享兩種將Allegro PCB文件導入到AD中的方法。一、第1種方法使用高版本的AD軟件(AD22,同時操作電腦需安裝了Allegr…

[免費]【NLP輿情分析】基于python微博輿情分析可視化系統(flask+pandas+echarts)【論文+源碼+SQL腳本】

大家好,我是python222_小鋒老師,看到一個不錯的【NLP輿情分析】基于python微博輿情分析可視化系統(flaskpandasecharts),分享下哈。 項目視頻演示 【免費】【NLP輿情分析】基于python微博輿情分析可視化系統(flaskpandasecharts爬蟲) Pytho…

什么是CI/CD?

CI/CD是持續集成(Continuous Integration)和持續交付/持續部署(Continuous Delivery/Continuous Deployment)的縮寫:持續集成(Continuous Integration, CI):CI是一種開發實踐&#x…

【Linux】重生之從零開始學習運維之Mysql

一主一從主12主機準備工作mkdir -p /data/mysql/logbin chown -R mysql:mysql /data/mysql主節點mysql配置vim /etc/my.cnf.d/mysql-server.cnf server-id177 log_bin/data/mysql/logbin/mysql-bin default_authentication_pluginmysql_native_password查看效果systemctl resta…

Trust Management System (TMS)

Trust Management System (TMS)信托管理系統學習信托管理系統(TMS)是一種用于高效管理信托業務的綜合平臺,涵蓋客戶信息、資產配置、風險監控等功能。通過學習TMS,可以掌握信托產品設計、業務流程優化及合規…

Spring Boot中使用Bouncy Castle實現SM2國密算法(與前端JS加密交互)

Spring Boot中使用Bouncy Castle實現SM2國密算法(與前端JS加密交互)一、環境準備二、核心實現三、前后端交互流程四、關鍵問題解決方案五、常見問題排查六、最佳實踐建議在現代Web應用中,數據安全傳輸至關重要。SM2作為我國自主設計的非對稱加…

機器學習sklearn:隨機森林的決策樹

bg:對比決策樹來說,搞多幾棵樹就是隨機森林了rlf_1 [] rlf_2 [] for i in range(10):rfc RandomForestClassifier(n_estimators25)rfc_s cross_val_score(rfc, wine.data, wine.target, cv10).mean()rlf_1.append(rfc_s)clf DecisionTreeClassifier…

上海月賽kk

1.十六進制#include<bits/stdc.h> using namespace std;int n;int main(){cin>>n;stack<int>re;if(n<16)cout<<0;while(n){re.push(n%16);n/16;}while(!re.empty()){int xre.top();re.pop();if(x<10)cout<<x;else cout<<char(Ax-10)…

暑期算法訓練.12

目錄 52. 力扣1 兩數之和 52.1 題目解析&#xff1a; 52.2 算法思路&#xff1a; 52.3 代碼演示&#xff1a; ?編輯 52.4 總結反思&#xff1a; 53 面試題&#xff1a;判定是否互為字符重排 53.1 題目解析&#xff1a; 53.2 算法思路&#xff1a; 53.3 代碼演示&…

MySQL時間處理完全指南:從存儲到查詢優化

時間是數據庫中最活躍的數據維度之一&#xff0c;正確處理時間數據關系到系統穩定性、數據分析準確性和業務邏輯正確性。本文將深入剖析MySQL時間處理的完整知識體系。一、MySQL時間數據類型詳解1. 核心時間類型對比類型存儲空間范圍特性時區影響DATE3字節1000-01-01~9999-12-3…