Linux中的時間同步

一、時間同步服務擴展總結

1. 時間同步的重要性

  • 多主機協作需求:在分布式系統、集群、微服務架構中,時間一致性是日志排序、事務順序、數據一致性的基礎。

  • 安全協議依賴:TLS/SSL證書、Kerberos認證等依賴時間有效性,時間偏差可能導致身份驗證失敗或中間人攻擊漏洞。

  • 故障排查:日志時間戳若不同步,跨節點問題定位將極其困難。

  • 高精度場景:金融交易(毫秒級誤差可能引發損失)、科學實驗、5G網絡同步(微秒級要求)等場景對時間精度要求極高。

2. NTP 協議核心機制

  • 層級結構(Stratum)

    • Stratum 0:高精度物理設備(如原子鐘、GPS衛星時鐘),直接提供時間源。

    • Stratum 1:與Stratum 0設備直連的NTP服務器,作為主時間服務器。

    • Stratum 2:從Stratum 1同步的服務器,依次類推(最多15層)。

  • 時鐘漂移修正:通過算法(如Marzullo算法)計算網絡延遲和時鐘偏差,逐步調整系統時間,避免時間跳變。

  • 閏秒處理:NTP協議支持在協調世界時(UTC)插入閏秒時平滑調整系統時間。

3. chrony 核心原理

  • ?設計目標

    • 動態網絡適應:自動調整輪詢間隔(minpoll/maxpoll),適應網絡延遲和波動。

    • 快速收斂:在初始同步或網絡恢復時,通過?iburst?參數快速完成時間校準。

    • 最小化時鐘偏差:利用硬件時間戳(hwtimestamp)和實時時鐘(RTC)補償,減少累積誤差。

    • 離線模式支持:無網絡時依賴本地時鐘維持時間穩定性。

  • 核心組件

    • chronyd 守護進程:后臺服務,負責與時間源通信并調整系統時鐘。

    • chronyc 命令行工具:用于監控和動態修改配置。

    • 配置文件?/etc/chrony.conf:定義時間源、策略、日志等參數。

4. NTP 服務(ntpd)

  • 特點

    • 長連接模式:持續與時間服務器通信,適合長期穩定運行的環境。

    • 資源占用低:適合嵌入式設備或低配置服務器。

    • 成熟穩定:經過多年驗證,兼容性廣泛(舊系統、網絡設備)。

  • 局限性

    • 網絡波動敏感:間歇性網絡中斷時同步效率下降。

    • 啟動速度慢:初次同步可能需要較長時間。

    • 溫度敏感性:物理服務器時鐘易受環境溫度影響,需頻繁修正。

5. Chrony 服務

  • 核心優勢

    • 動態適應網絡:在斷線、高延遲網絡中快速收斂,適合移動設備、虛擬機、云環境。

    • 更小時間偏差:通過更精細的時鐘頻率調整算法(如RTC補償),減少長期運行后的累積誤差。

    • 安全性增強:支持NTP的Autokey協議,防止中間人攻擊。

  • 關鍵特性

    • 硬件時間戳:利用網卡硬件記錄數據包收發時間,消除操作系統調度延遲,顯著提升精度(可達亞微秒級)。

    • 隔離模式:無網絡時,依賴本地時鐘維持時間一致性,避免服務中斷。

    • 輕量級設計:服務進程資源占用更低,適合容器化環境。

二、時間同步服務器的使用

1.使用 timedatectl 命令進行系統時間與時區管理

timedatectl 基礎命令與功能

命令功能說明
timedatectl查看當前時間、時區、NTP 同步狀態等完整信息。
timedatectl set-time "YYYY-MM-DD HH:MM:SS"手動設置系統時間(需 root 權限)。
timedatectl list-timezones列出系統支持的所有時區名稱(按?PageUp/PageDown?翻頁)。
timedatectl set-timezone "時區名"設置系統時區(如?Asia/Shanghai)。
timedatectl set-local-rtc 0將硬件時鐘(RTC)視為?UTC 時間(推薦)。
timedatectl set-local-rtc 1將硬件時鐘(RTC)視為?本地時間(Windows 雙系統場景可能需要)。
timedatectl set-ntp yes/no(true/false)啟用/禁用?NTP 網絡時間同步(啟用后自動同步時間,覆蓋手動設置)。

2.從公共 NTP 服務器中同步時間到本地機器

常用公共 NTP 服務器分類匯總表

服務商/項目NTP 服務器地址.地區/用途備注
NTP Pool Project[0-3].asia.pool.ntp.org亞洲地區(動態分配最近節點)全球分布式集群,自動選擇最優節點。支持多區域(如?europe.pool.ntp.org)。
pool.ntp.org全球(默認分配最近節點)主入口,推薦普通用戶使用。
阿里云ntp.aliyun.com中國大陸阿里云公共 NTP,低延遲,國內推薦。
ntp1-7.aliyun.com中國大陸(多節點負載均衡)冗余設計,提升可靠性(如?ntp1.aliyun.com?至?ntp7.aliyun.com)。
time.pool.aliyun.comWindows 系統專用Windows 時間服務默認支持。
國家授時中心ntp.ntsc.ac.cn中國大陸中國科學院國家授時中心官方服務器,高精度、高可靠性。
騰訊云ntp.tencent.com中國大陸騰訊云公共 NTP,適用于國內云服務器。
Googletime.google.com全球谷歌公共 NTP,支持 IPv4/IPv6,需網絡可訪問谷歌。
Microsofttime.windows.com全球Windows 默認時間服務器,兼容性強。
Appletime.apple.com全球macOS 和 iOS 設備默認時間服務器。
Amazon[0-3].amazon.pool.ntp.org全球(AWS 區域優化)亞馬遜云 NTP 服務,適合 AWS 用戶。
Cloudflaretime.cloudflare.com全球Cloudflare 提供的公共 NTP,低延遲。
CNNICcn.ntp.org.cn中國大陸中國互聯網絡信息中心(CNNIC)維護的 NTP 服務器。

下圖我們將NTP服務器的地址源改寫成國家授時中心的NTP服務器地址。

然后使用 systemctl restart chronyd.service 重啟chrony服務,使新的配置生效。

在RHEL9中,chrony?是 RHEL 9 中默認的 NTP 客戶端,chronyc?是?chrony?的控制工具,可用于查看詳細的時間同步信息。

  • 查看 NTP 源狀態:chronyc sources -v

  • 查看時間同步統計信息:chronyc tracking

chronyc sources -v?輸出字段詳解

字段說明示例/可能值
MS狀態標記:表示源的狀態,符號組合如下:
-?^*:當前同步的源。
-?^+:候選源(備選)。
-?^-:可接受的源。
-?^?:未同步或不可信源。
-?^x:被排除的源(誤差過大)。
^*,?^+,?^-,?^?,?^x
Stratum層級:時間源的層級,范圍 1-15,1 表示最高精度(如原子鐘),層級逐級遞增。1,?2,?3
Poll輪詢間隔:與源同步的時間間隔(秒),以 2 的冪表示(如?6?表示 2?=64 秒)。6(64秒),?10(1024秒)
Reach可達性:最近 8 次輪詢的成功率,8 進制表示(377?表示 8 次全部成功)。377(全成功),?25(部分成功)
LastRx最后接收時間:距離最后一次接收到源響應的時間(格式:秒/分鐘/小時/天)。45s,?3h,?7d
Last sample最后樣本偏差:最后一次時間同步的偏差,包含:
- 時間偏移(±數值):本地與源的時間差。
- 延遲(delay):網絡延遲。
- 離散度(disp):誤差范圍。
+0.123ms ± 0.456ms,?delay 12.3ms
Source時間源地址:NTP 服務器的 IP 或域名。ntp.aliyun.com,?192.168.1.1
State源狀態:詳細狀態描述,如同步狀態、網絡狀態等。SYNC,?INIT,?WAIT
Flags標志位:表示源的特性,如:
-?N:NTP 協議源。
-?P:PPS 信號源。
-?S:選擇狀態。
-?A:認證通過。
N,?NP,?S,?A
Condition狀態條件:源的健康狀態,如:
-?OK:正常。
-?FALSETICK:檢測到異常。
-?JITTER:抖動過大。
OK,?FALSETICK,?JITTER

3.時間同步服務器的搭建

時間同步測試服務器IP地址:192.168.52.200/24

時間同步測試主機IP地址:192.168.52.20/24

以下配置都在Chrony 的配置文件?/etc/chrony.conf?中進行。

netstat -antlupe各列參數含義

說明
Proto協議類型(udpudp6?分別表示 IPv4 UDP 和 IPv6 UDP)。
Recv-Q接收隊列大小(當前待處理的數據包數量,0?表示無積壓)。
Send-Q發送隊列大小(當前待發送的數據包數量,0?表示無積壓)。
Local Address:Port本地監聽的地址和端口:
-?0.0.0.0:123:監聽所有 IPv4 接口的 NTP 服務端口(123)。
-?127.0.0.1:323:IPv4 本地回環地址的 chronyd 控制端口(323)。
-?::1:323:IPv6 本地回環地址的 chronyd 控制端口(323)。
Foreign Address:Port遠端連接的地址和端口:
-?0.0.0.0:*?或?:::*:表示未建立連接(監聽狀態)。
State連接狀態(UDP 無狀態,因此顯示?*)。
UID進程所有者的用戶 ID(0?表示 root 用戶)。
PID/Program進程 ID 和程序名稱:
-?98619/chronyd:chronyd 守護進程的 PID。
其他擴展信息netstat -e?顯示的額外信息(如網絡統計,此處未顯式展示)。

然后就發現測試主機可以同步到服務器端的時間了。

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

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

相關文章

【算法基礎】三指針排序算法 - JAVA

一、基礎概念 1.1 什么是三指針排序 三指針排序是一種特殊的分區排序算法,通過使用三個指針同時操作數組,將元素按照特定規則進行分類和排序。這種算法在處理包含有限種類值的數組時表現出色,最經典的應用是荷蘭國旗問題(Dutch …

《操作系統真象還原》第十二章(2)——進一步完善內核

文章目錄 前言可變參數的原理實現系統調用write更新syscall.h更新syscall.c更新syscall-init.c 實現printf編寫stdio.h編寫stdio.c 第一次測試main.cmakefile結果截圖 完善printf修改main.c 結語 前言 上部分鏈接:《操作系統真象還原》第十二章(1&#…

ICML2021 | DeiT | 訓練數據高效的圖像 Transformer 與基于注意力的蒸餾

Training data-efficient image transformers & distillation through attention 摘要-Abstract引言-Introduction相關工作-Related Work視覺Transformer:概述-Vision transformer: overview通過注意力機制蒸餾-Distillation through attention實驗-Experiments…

深度學習:AI 機器人時代

在科技飛速發展的當下,AI 機器人時代正以洶涌之勢席卷而來,而深度學習作為其核心驅動力,正重塑著我們生活與工作的方方面面。 從智能工廠的自動化生產,到家庭中貼心服務的智能助手,再到復雜環境下執行特殊任務的專業機…

《告別試錯式開發:TDD的精準質量鍛造術》

深度解鎖TDD:應用開發的創新密鑰 在應用開發的復雜版圖中,如何雕琢出高質量、高可靠性的應用,始終是開發者們不懈探索的核心命題。測試驅動開發(TDD),作為一種顛覆性的開發理念與方法,正逐漸成…

應用層自定義協議序列與反序列化

目錄 一、網絡版計算器 二、網絡版本計算器實現 2.1源代碼 2.2測試結果 一、網絡版計算器 應用層定義的協議: 應用層進行網絡通信能否使用如下的協議進行通信呢? 在操作系統內核中是以這種協議進行通信的,但是在應用層禁止以這種協議進行…

Excel-CLI:終端中的輕量級Excel查看器

在數據驅動的今天,Excel 文件處理成為了我們日常工作中不可或缺的一部分。然而,頻繁地在圖形界面與命令行界面之間切換,不僅效率低下,而且容易出錯。現在,有了 Excel-CLI,一款運行在終端中的輕量級Excel查看…

百度后端開發一面

mutex, rwmutex 在Go語言中,Mutex(互斥鎖)和RWMutex(讀寫鎖)是用于管理并發訪問共享資源的核心工具。以下是它們的常見問題、使用場景及最佳實踐總結: 1. Mutex 與 RWMutex 的區別 Mutex: 互斥鎖&#xf…

STM32 IIC總線

目錄 IIC協議簡介 IIC總線系統結構 IIC總線物理層特點 IIC總線協議層 空閑狀態 應答信號 數據的有效性 數據傳輸 STM32的IIC特性及架構 STM32的IIC結構體 0.96寸OLED顯示屏 SSD1306框圖及引腳定義 4針腳I2C接口模塊原理圖 字節傳輸-I2C 執行邏輯框圖 命令表…

【unity游戲開發入門到精通——UGUI】整體控制一個UGUI面板的淡入淡出——CanvasGroup畫布組組件的使用

注意:考慮到UGUI的內容比較多,我將UGUI的內容分開,并全部整合放在【unity游戲開發——UGUI】專欄里,感興趣的小伙伴可以前往逐一查看學習。 文章目錄 前言CanvasGroup畫布組組件參數 實戰專欄推薦完結 前言 如果我們想要整體控制…

大型語言模型個性化助手實現

大型語言模型個性化助手實現 目錄 大型語言模型個性化助手實現PERSONAMEM,以及用戶資料和對話模擬管道7種原位用戶查詢類型關于大語言模型個性化能力評估的研究大型語言模型(LLMs)已經成為用戶在各種任務中的個性化助手,從提供寫作支持到提供量身定制的建議或咨詢。隨著時間…

生成式 AI 的未來

在人類文明的長河中,技術革命始終是推動社會躍遷的核心引擎。從蒸汽機解放雙手,到電力點亮黑夜,再到互聯網編織全球神經網絡,每一次技術浪潮都在重塑人類的生產方式與認知邊界。而今天,生成式人工智能(Generative AI)正以一種前所未有的姿態登上歷史舞臺——它不再局限于…

【序列化與反序列化詳解】

文章目錄 一、序列化與反序列化是什么?1. 為什么需要序列化?2. 反序列化的作用 二、常見的序列化格式三、不同編程語言的序列化與反序列化示例1. Python 的序列化與反序列化JSON 序列化Pickle 序列化(僅限 Python) 2. Java 的序列…

【單例模式】簡介

目錄 概念理解使用場景優缺點實現方式 概念理解 單例模式要保證一個類在整個系統運行期間,無論創建多少次該類的對象,始終只會有一個實例存在。就像操作系統中的任務管理器,無論何時何地調用它,都是同一個任務管理器在工作&#…

目標檢測YOLO實戰應用案例100講- 無人機平臺下露天目標檢測與計數

目錄 知識儲備 基于YOLOv8改進的無人機露天目標檢測與計數 一、環境配置與依賴安裝 二、核心代碼實現(帶詳細注釋) 1. 改進YOLOv8模型定義(添加注意力機制) 2. 無人機視角數據增強(drone_augment.py ) 3. 多目標跟蹤與計數(tracking_counter.py ) 4. 完整推理流…

【在Spring Boot中集成Redis】

在Spring Boot中集成Redis 依賴在application.yml中配置Redis服務地址創建Redis配置類緩存工具類使用 依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency&…

計算機視覺——基于樹莓派的YOLO11模型優化與實時目標檢測、跟蹤及計數的實踐

概述 設想一下&#xff0c;你在多地擁有多個倉庫&#xff0c;要同時監控每個倉庫的實時狀況&#xff0c;這對于時間和精力而言&#xff0c;都構成了一項艱巨挑戰。從成本和可靠性的層面考量&#xff0c;大規模部署計算設備也并非可行之策。一方面&#xff0c;大量計算設備的購…

通信協議記錄儀-產品規格書

以下是為 ??通信協議記錄儀(ProtoLogger Pro)?? 的??詳細產品規格書??,覆蓋 ??技術細節、場景需求、競品差異化??,確保可作為產品開發、市場營銷及競品分析的核心依據。 ??通信協議記錄儀產品規格書?? ??產品名稱??:ProtoLogger Pro(中文名稱:蹲守…

python:sklearn 決策樹(Decision Tree)

5. 決策樹&#xff08;Decision Tree&#xff09; - 第5章 算法思想&#xff1a;基于信息增益&#xff08;ID3&#xff09;或基尼不純度&#xff08;CART&#xff09;遞歸劃分特征。 編寫 test_dtree_1.py 如下 # -*- coding: utf-8 -*- """ 5. 決策樹&…

【2-sat】2-sat算法內容及真題

A.2-sat簡介 2-sat算法可以求解給定推出關系下的一種合法情況。題目中重常常&#xff0c;給定一些布爾變量A、B、C、D…&#xff0c;再給出一系列形如 B ? A , C ? D B \longrightarrow A , C \longrightarrow \neg D B?A,C?D的推出關系&#xff0c;詢問使得所有推出關系…