Linux的時間同步服務器(附加詳細實驗案例)

一、計時方式的發展

1.古代計時方式?

  • 公元前約 2000 年:古埃及人利用光線留下的影子計時,他們修建高聳的大型方尖碑,通過追蹤方尖碑影子的移動判斷時間,這是早期利用自然現象計時的典型方式 。?
  • 商朝時期:人們開發并使用泄水型水鐘 —— 漏壺。通過水從壺中緩慢流出,依據水位下降的刻度來記錄時間,開啟了利用流體計時的新階段。?
  • 北宋元祐元年(1086 年):天文學家蘇頌將渾儀、渾象和報時裝置結合,建造出 “水運儀象臺”。它不僅能觀測天象,還能準確計時與報時,是古代機械計時技術的集大成者。?
  • 14 世紀:機械鐘在西方國家廣泛使用,推動計時工具向機械化發展。?
  • 16世紀:奧斯曼帝國的科學家達茲?艾 - 丁(Taqi al - Din)發明機械鬧鐘,為計時工具增添新功能。?
  • 1583 年:伽利略提出著名的等時性理論,指出不論擺動幅度大小,擺完成一次擺動的時間相同,為鐘表計時精度提升奠定理論基礎。?
  • 1656 年:荷蘭科學家克里斯蒂安?惠更斯(Christiaan Huygens)應用伽利略的理論,設計出世界第一只鐘擺,大幅提升了機械鐘表的計時精度。?
  • 1868 年:百達翡麗(Patek Philippe)發明手表,使計時工具更加便于攜帶,適應人們日常使用需求。?

2.現代計時方式?

  • 1967 年:瑞士發布世界上首款石英表。石英晶體在電池電力作用下產生規律振動(每秒振動 32768 次),通過電路計算振動次數確定時間,石英鐘表因精準、成本低迅速普及。?
  • 拉比提出原子鐘構想后逐步發展?:拉比依據原子從高 “能量態” 遷至低 “能量態” 時釋放電磁波并產生共振頻率的原理,構想出原子鐘(Atomic clock )。如今,銫原子(Caesium133)鐘被很多國家(包括我國和美國 NIST)的標準局用作時間精度標準,GPS 系統也依賴其精確計時。?
  • 2008 年:鍶(Strontium87)原子鐘誕生,固有頻率約合 430 萬億赫茲,將精度提升到 10 的 17 次方。?
  • 2013 年:由鐿元素(ytterbium)制成的原子鐘問世,固有頻率約合 518 萬億赫茲,精度高達 10 的 18 次方,若從 138 億年前宇宙誕生時開始計時,至今誤差不超過 1 秒。此外,網絡時間授時服務出現,用戶可借此獲取統一、標準的時間信號,極大簡化時間同步過程。

二、時間同步服務

多主機協作工作時,各個主機的時間同步很重要,時間不一致會造成很多重要應用的故障,如:加密協議,日志,集群等,利用NTP(Network Time Protocol )協議使網絡中的各個計算機時間達到同步。目前NTP協議屬于運維基礎架構中必備的基本服務之一。

Linux 時間同步服務的工具主要有 NTP 和 Chrony :

  • ntp:將系統時鐘和世界協調時 UTC 同步。局域網內,其精度可達 0.1ms,可滿足企業關鍵業務系統等對時間精度要求高的場景。互聯網上絕大多數地方,精度課達到?1 - 50ms,能滿足普通網站服務器等應用的時間同步需求。ntp 項目官網是?http://www.ntp.org,在官網可獲取軟件、文檔和社區支持等資源。
  • chrony:作為實現 NTP 協議的自由軟件,功能強大靈活。不僅能與 NTP 服務器同步,還支持 GPS 接收器等參考時鐘,也可手動輸入時間。chrony 能作為 NTPv4 服務器和對等體,為網絡計算機提供時間服務。它適應多種復雜環境,在間歇性、擁擠網絡,以及系統運行不連續或虛擬機場景下都能穩定工作。通過 Internet 同步時精度在幾毫秒內,LAN 環境下精度為幾十微秒,借助硬件時間戳或參考時鐘可實現亞微秒級精度,常用于金融交易系統、航空航天控制等對時間精度要求極高的領域。

?三、時間同步服務的使用

1.系統時間及時區管理?

timedatectl 命令總結:

timedatectl查看系統時間
timedatectl set-time "2026-11-11 11:11:11"
設定系統時間
timedatectl list-timezones
顯示系統的所有時區
timedatectl set-timezone "Asia/Shanghai"
設定系統時區
timedatectl set-local-rtc 0|1
設定系統時間計算方式
(0表示 utc?時間計算方式,1表示 cst 時間計算方式)

timedatectl查看系統時間?

Local time當前系統時間
Universal time倫敦時間
RTC time硬件時間
Time zone時區
System clock synchronized系統時間同步開啟
NTP serviceNTP 協議開啟
RTC in local TZ硬件時間是否使用本地時間

修改時間需要關掉 chronyd.service,?NTP service 從 active 變為 inactive。

timedatectl set-time "2026-11-11 11:11:11"設定系統時間為 2026-11-11 11:11:11?

timedatectl list-timezones列出系統中所有可用的時區?

timedatectl set-timezone "Asia/Amman"將時區改為 Asia/Amman ,位于東三區(+0300),后面再改回?Asia/Shanghai。

timedatectl set-local-rtc 1RTC time 使用 Local time,(硬件時間同步本地時間),警告提示:跨區進行數據傳輸時會出現問題

timedatectl set-local-rtc 0RTC time 使用 Universal time(硬件時間同步倫敦時間)

2.客戶端使用公共 ntp 地址同步網絡時間

pool:指定時間源為?ntp.ntsc.ac.cn

iburst:當服務重啟時,立即向?ntp.ntsc.ac.cn 主機發送同步時間的請求(選項當服務器可達時,發送一個八個數據包而不是通常的一個數據包,包間隔通常為2秒,可加快初始同步速度)

chronyc sources –v顯示時間同步信息,圖中可知時間與 114.118.7.163 主機的時間同步

*表示同步當前最優主機時間? ? ? ? ? ? ? ? ? ? ? ? ??表示不可達?

  • M:時間源模式 ^表示服務器,=表示對等方,表示本地連接的參考時鐘
  • S:指源的狀態

? ? ? ? ??*? ? 表示?chronyd?當前已經同步到的源。

????????? +? ?表示可接受的信號源,與選定的信號源組合在一起。

????????? -? ? 表示被合并算法排除的可接受源

????????? ?? ?指已失去連接性或者其數據包未通過所有測試的源。

????????? x? ?表示chronyd認為時虛假行情的時鐘,即標記該時間與其他多數時間不一致

????????? ~? ?表示時間似乎具有太多可變性

  • Name/IP address:顯示源的名稱或IP地址
  • Stratum:顯示時間來源的層
  • Poll:顯示輪詢源的速率
  • Reach:顯示源的可達性寄存器以八進制數字打印
  • LastRx:顯示多長時間前從來源接收到了最后一個好的樣本
  • Last sample:此列顯示上次測量時本地時鐘與源之間的偏移

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

兩臺主機,192.168.10.200 作為服務器,增加 192.168.10.20 作為客戶端,目的使客戶端(192.168.10.20)同步服務器(192.168.10.200)的時間。以下是客戶端主機的配置:

1)服務器(192.168.10.200)的命令配置

allow 0.0.0.0/0:允許所有人看服務器的時間,0表示沒有,也表示全部

local stratum 10:設定時間層為第10層,即使 server 指令中時間服務器不可用,也允許將本地時間作為標準時間授時給其它客戶端

重啟服務器中的時間同步服務,并查看時間同步情況

netstat -antlupe | prep chronyd檢測系統當中的端口(開了哪些端口)

-antlupe 的解釋說明:

a:顯示所有連接和監聽端口

n:解析,以數字形式顯示地址和端口號

t:顯示 TCP 連接和監聽端口。

l:顯示處于監聽狀態的套接字

u:顯示 UDP 連接和監聽端口

p:顯示進程的 PID(進程 ID)和名稱

e:顯示擴展信息

在服務器端還需關閉火墻,才能同步時間。?

2)客戶端(192.168.10.20)測試同步服務器時間

先修改客戶端的時間,便于觀察后續是否同步服務器時間。date 命令只能改系統時間,不能改硬件時間(RTC time)。

date 命令解釋:

11? ?11? ?11? ?11? ?2026 .?11

月? ?日?? 時?? 分? ? ?年? ? ? 秒

然后指定 ip 為服務器的 ip(192.168.10.200)?

重啟 chronyd 服務,然后查看可知已同步 192.168.10.200 的時間。

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

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

相關文章

【無需docker】mac本地部署dify

環境安裝準備 #安裝 postgresql13 brew install postgresql13 #使用zsh的在全局添加postgresql命令集 echo export PATH"/usr/local/opt/postgresql13/bin:$PATH" >> ~/.zshrc # 使得zsh的配置修改生效 source ~/.zshrc # 啟動postgresql brew services star…

(5)概述 QT 的元對象系統里的類的調用與聯系,及訪問接口

(1) QT 的元對象系統,這幾個字大家都知道,那么 QT 的元對象系統里都包含哪些內容呢,其訪問接口是如何呢? 從 QObject 類的實現里,從其數據成員里就可以看出來: QT 里父容器可以釋放其…

打包 Python 項目為 Windows 可執行文件:高效部署指南

Hypackpy 是一款由白月黑羽開發的 Python 項目打包工具,它與 PyInstaller 等傳統工具不同,通過直接打包解釋器環境和項目代碼,并允許開發者修改配置文件以排除不需要的內容,從而創建方便用戶一鍵運行的可執行程序。以下是使用 Hyp…

MySQL JOIN詳解:掌握數據關聯的核心技能

一、為什么需要JOIN? 在關系型數據庫中,數據通常被拆分到不同的表中以提高存儲效率。當我們需要從多個表中組合數據時,JOIN操作就成為了最關鍵的技能。通過本文,您將全面掌握MySQL中7種JOIN操作,并學會如何在實際場景中…

Kdump 收集器及使用方式

以下是 Linux 系統中 Kdump 轉儲收集器的詳細說明及其使用方法,涵蓋核心工具、配置方法及實際示例: 一、Kdump 收集器分類及作用 Kdump 的核心功能是通過 捕獲內核 生成內存轉儲文件(vmcore),其核心收集器包括&#…

Error: error:0308010C:digital envelope routines::unsupported 高版本node啟動低版本項目運行報錯

我的問題就是高版本node啟動舊版本項目引起的問題,單獨在配置 package.json文件中配置并運行就可以,大概意思就是設置node的openssl "scripts": {"dev": "SET NODE_OPTIONS--openssl-legacy-provider && vue-cli-servi…

松下機器人快速入門指南(2025年更新版)

松下機器人快速入門指南(2025年更新版) 松下機器人以其高精度、穩定性和易用性在工業自動化領域廣泛應用。本文將從硬件配置、參數設置、手動操作、編程基礎到維護保養,全面講解松下機器人的快速入門方法,幫助新手快速掌握核心操…

【CISCO】Se2/0, Se3/0:串行口(Serial) 這里串口的2/0 和 3/0分別都是什么?

在 Cisco IOS 設備上&#xff0c;接口名稱通常遵循這樣一個格式&#xff1a; <類型><槽號>/<端口號>類型&#xff08;Type&#xff09;&#xff1a;表示接口的物理或邏輯類型&#xff0c;比如 Serial&#xff08;串行&#xff09;、FastEthernet、GigabitEt…

開源無人機地面站QGroundControl安卓界面美化與邏輯優化實戰

QGroundControl作為開源無人機地面站軟件,其安卓客戶端界面美化與邏輯優化是提升用戶體驗的重要工程。 通過Qt框架的界面重構和代碼邏輯優化,可以實現視覺升級與性能提升的雙重目標。本文將系統講解QGC安卓客戶端的二次開發全流程,包括開發環境搭建、界面視覺升級、多分辨率…

基于DDPG的自動駕駛小車繞圈任務

1.任務介紹 任務來源: DQN: Deep Q Learning &#xff5c;自動駕駛入門&#xff08;&#xff1f;&#xff09; &#xff5c;算法與實現 任務原始代碼: self-driving car 在上一篇使用了DQN算法完成自動駕駛小車繞圈任務之后&#xff0c;學習了DDPG算法&#xf…

緩存置換:用c++實現最近最少使用(LRU)算法

在計算機的世界里&#xff0c;緩存就像一個“快速倉庫”&#xff0c;它存儲著我們頻繁訪問的數據&#xff0c;大大提升了數據的讀取速度。但這個 “倉庫” 空間有限&#xff0c;當它被裝滿時&#xff0c;就得決定舍棄一些數據&#xff0c;為新數據騰出位置&#xff0c;這個決策…

【YOLO11改進】改進Conv、頸部網絡STFEN、以及引入PIOU用于小目標檢測!

改進后的整體網絡架構 改進一:RFD模塊(Conv) YOLOv11模型的跨步卷積下采樣雖然快速聚合了局部特征,并且實現了較高的計算效率,但其固有的信息壓縮機制會導致細粒度特征的不可逆丟失。針對特征保留與計算效率的平衡問題,本文采用RFD模塊替換跨步卷積下采樣模塊。RFD模塊通…

設計模式每日硬核訓練 Day 18:備忘錄模式(Memento Pattern)完整講解與實戰應用

&#x1f504; 回顧 Day 17&#xff1a;中介者模式小結 在 Day 17 中&#xff0c;我們學習了中介者模式&#xff08;Mediator Pattern&#xff09;&#xff1a; 用一個中介者集中管理對象之間的通信。降低對象之間的耦合&#xff0c;適用于聊天系統、GUI 控件聯動、塔臺調度等…

java單元測試代碼

import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; import java.util.List;public class UserServiceTest {Testpublic void testSearchUserByTags() {// 模擬標簽列表List<String> tagNameList List.of("tag1", "…

前端面經-VUE3篇(一)--vue3基礎知識- 插值表達式、ref、reactive

目錄 一、 插值表達式 1、插值表達式 ({{}}) 的本質與作用&#xff1a; 2、與 Vue 響應式系統關系&#xff1a; 二、指令 1、什么是 Vue 指令&#xff1f; 2、指令的分類 1、內置指令 ① 內容綁定&#xff1a;v-text 和 v-html ② 屬性綁定&#xff1a;v-bind ③ 事件綁定…

矩陣置零(中等)

可以用兩個標記數組分別記錄每一行和每一列是否有零出現。 首先遍歷該數組一次&#xff0c;如果某個元素為 0&#xff0c;那么就將該元素所在的行和列所對應標記數組的位置置為 true。然后再次遍歷該數組&#xff0c;用標記數組更新原數組。 class Solution {public void set…

Android 實現一個隱私彈窗

效果圖如下&#xff1a; 1. 設置同意、退出、點擊用戶協議、點擊隱私協議的函數參數 2. 《用戶協議》、《隱私政策》設置成可點擊的&#xff0c;且顏色要區分出來 res/layout/dialog_privacy_policy.xml 文件 <?xml version"1.0" encoding"utf-8"?&…

TCP概念+模擬tcp服務器及客戶端

目錄 一、TCP基本概念 二、ser服務器代碼 三、cil客戶端代碼 四、面試常問問題 4.1 TCP的可靠性怎么保證或怎么實現? 4.2 具體說一下滑動窗口 一、TCP基本概念 TCP&#xff08;Transmission Control Protocol&#xff0c;傳輸控制協議&#xff09;是一種面向連接的、可…

Cocos Creator 自動圖集資源 (Auto Atlas)使用注意事項

1、游戲打包時&#xff0c;自動圖集設置選項中&#xff0c;默認會刪除無關聯的圖片 2、自動圖集設置中&#xff0c;就算勾除(Remove unused ImageAsset from the Bundle)的功能&#xff0c;無關聯的圖片也不會打包進入圖集之中&#xff0c;會獨立存在打包的游戲中。 3、使用自動…

PyTorch 2.0編譯器技術深度解析:如何自動生成高性能CUDA代碼

引言&#xff1a;編譯革命的范式轉移 PyTorch 2.0的torch.compile不僅是簡單的即時編譯器&#xff08;JIT&#xff09;&#xff0c;更標志著深度學習框架從?解釋執行?到?編譯優化?的范式躍遷。本文通過逆向工程編譯過程&#xff0c;揭示PyTorch如何將動態圖轉換為高性能CU…