Ubuntu 內網多臺服務器時間同步方案(適用于臨時能上外網的環境)

哎,最近項目是運行在內網環境下的,出現了由于時間不同步導致的bug。一般來講,幾臺服務器的時間不一致,會帶來很多問題,比如日志時間對不上、分布式服務出現異常,等等。項目上現在有三臺服務器,其中只有一臺可以臨時訪問外網,另外兩臺完全是內網。將來可能會徹底斷網。為了解決時間不同步的問題,我整理了下面這個方案。

一、方案目標

讓三臺服務器的時間保持一致

  1. 有外網時,能同步公網的標準時間
  2. 無外網時,在內網里保持同步

二、服務器情況

角色IP 地址說明
S1192.168.10.10主服務器,可臨時訪問外網
S2192.168.10.11從服務器,純內網
S3192.168.10.12從服務器,純內網

我們會讓 S1 做時間同步的“主機”,S2 和 S3 跟著它同步時間。

三、操作步驟

1. 所有服務器先做這些準備工作

# 關閉系統自帶的時間同步服務
sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd# 安裝 chrony(我們用它來同步時間)
sudo apt update
sudo apt install -y chrony# 設置時區為中國時間(可根據實際調整)
sudo timedatectl set-timezone Asia/Shanghai# 同步系統時間到主板時鐘
sudo hwclock --systohc

2. 配置主服務器(S1)

我們要讓 S1 能自己從外網同步時間,然后把時間提供給內網其它服務器。

編輯配置文件:

sudo nano /etc/chrony/chrony.conf

替換成下面這些內容:

# 公網時間源
server cn.pool.ntp.org iburst
server ntp.aliyun.com iburst
server ntp.tencent.com iburst# 允許內網訪問這個時間服務(根據實際網段調整)
allow 192.168.10.0/24# 沒有外網時,S1 用自己的時間當源
local stratum 10# 加快第一次同步速度
makestep 1.0 3# 其他默認配置
driftfile /var/lib/chrony/chrony.drift
rtcsync
logdir /var/log/chrony

保存并退出后,重啟服務:

sudo systemctl enable --now chrony

3. 配置內網客戶端(S2 和 S3)

讓 S2 和 S3 只和 S1 同步時間。

編輯配置文件:

sudo nano /etc/chrony/chrony.conf

內容如下:

# 指向主服務器 S1
server 192.168.10.10 iburst prefer# 同步時間時快速修正
makestep 1.0 3# 其他默認配置
driftfile /var/lib/chrony/chrony.drift
rtcsync
logdir /var/log/chrony

保存并退出后,重啟服務:

sudo systemctl enable --now chrony

4. 驗證同步是否成功

S1 上查看同步源:

chronyc sources -v

如果有外網,它應該會顯示外面的時間源。

S2 / S3 上查看同步情況:

chronyc sources -v

你應該能看到 S1 的 IP 地址(192.168.10.10),前面有 ^* 標志,說明它被選作時間源。

還可以查看當前系統時間和參考源偏差:

chronyc tracking

四、原理簡單說一下

chrony 是一個時間同步工具,比老的 ntpd 更快更穩定。

  1. 有外網時,S1 會去公網同步標準時間。
  2. 沒外網時,S1 會用自己主板的時間來繼續提供服務,雖然不是很精確,但幾臺機器之間不會偏太多。
  3. S2 和 S3 只信任 S1,不和外網同步。

這樣三臺機器的時間就始終保持一致。

五、優點和注意點

**優點:**有外網就用外網時間,沒外網也能內網自給自足。所有服務器時間統一,不容易出錯。

注意事項:
如果 S1 防火墻開啟了,記得放開 UDP 的 123 端口(NTP 用的)。
bash sudo ufw allow from 192.168.10.0/24 to any port 123 proto udp

這個方案適合內網環境,有更高要求的話可以考慮接 GPS 授時設備。

六、總結

三臺服務器,一臺臨時能訪問外網,搭個 chrony 時間服務器。其它服務器跟著它同步。外網斷了也不怕,時間不會亂。下次項目中若有類似需求,就可以按照這個方法部署,很快就能搞定。如果有更多服務器,也可以讓它們都指向 S1,同樣有效。

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

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

相關文章

延長電池壽命的低Iq技術

本文章是筆者整理的備忘筆記。希望在幫助自己溫習避免遺忘的同時,也能幫助其他需要參考的朋友。如有謬誤,歡迎大家進行指正。一、概述隨著電池供電型應用的激增,人們對質優價廉的電池和電池包的需求持續猛漲。電池制造商們不斷采用新的化學物…

QT 如何實現enum與字符串的互轉

將enum中定義的枚舉值,以字符串的形式寫入文件,同時也能從字符串轉為枚舉值。舉例說明: ColorSelector中的Colors枚舉,我們希望 kColorRed 這個寫入到本地文件時,可以直接保存“kColorRed”,而非kColorRed對…

SLAM卷不動了,機器人還有哪些方向能做?

關注gongzhonghao【CVPR頂會精選】眾所周知,機器人因復雜環境適應性差、硬件部署成本高,對高效泛化一直需求迫切。再加上多傳感器協同難題、真實場景數據獲取不易,當下對遷移學習 機器人智能融合的研究也就更熱烈了。不過顯然,這…

H.266 vs H.265/AV1/H.264:從工程落地看下一代視頻系統的技術演進

一、背景:編解碼標準演進背后的技術驅動 視頻編碼標準的更迭,從未只是一次簡單的技術升級,而是對碼率壓縮效率、編碼復雜度與畫質質量三者之間平衡點的持續探索。在 H.264 成為全平臺事實標準的十余年里,它成功支撐了 SD 至 1080…

Javascript面試題及詳細答案150道之(031-045)

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

Git如何同步本地與遠程倉庫并解決沖突

在團隊協作開發中,保持本地倉庫與遠程倉庫同步是至關重要的。本文將詳細介紹如何使用 Git 更新本地倉庫至最新遠程版本,并深入解析沖突的產生原因及解決方法。一、同步本地與遠程倉庫1. 檢查遠程倉庫配置首先,確保本地倉庫已正確關聯遠程倉庫…

Hadoop MapReduce 3.3.4 講解~

?博客主頁: https://blog.csdn.net/m0_63815035?typeblog 💗《博客內容》:.NET、Java.測試開發、Python、Android、Go、Node、Android前端小程序等相關領域知識 📢博客專欄: https://blog.csdn.net/m0_63815035/cat…

1、【數學】【硬幣悖論】旋轉硬幣問題

問題描述: 兩個相同的硬幣,半徑都是 rrr。一個硬幣(稱為“動硬幣”)沿著另一個固定不動的硬幣(“靜硬幣”)的外邊緣無滑動地滾動一圈,回到起始位置。問:動硬幣自身旋轉了幾圈&#x…

【盤古100Pro+開發板實驗例程】FPGA學習 | PCIE 通信測試實驗例程

本原創文章由深圳市小眼睛科技有限公司創作,版權歸本公司所有,如需轉載,需授權并注明出處(www.meyesemi.com) 1. 實驗簡介 實驗目的: 完成 PCIE 通信測試。 實驗環境: Window11 PDS2022.2-SP6.4 硬件環…

基于高階累積量的調制識別

基于高階累積量的調制識別是一種利用信號的高階統計特性來識別不同調制方式的方法。 1. 基本原理 高階累積量(Higher-Order Cumulants)是信號處理中的一個重要工具,能夠捕捉信號的非高斯特性。與高階矩相比,高階累積量對高斯噪聲具…

Java常用數據結構入門

Java常用數據結構入門 前言 數據結構是程序設計中的基礎,掌握常用數據結構能幫助你更高效地解決問題。本文面向Java初學者,介紹Java中常用的數據結構及其基本使用方法。 1. 數組 (Array) 數組是最基礎的數據結構,可以存儲固定大小的同類型…

Android GPU測試

一、Basemark GPU 可選擇進行vulkan和opengl測試: 二、GFXBench 進行各種offscreen測試(包括曼哈頓離屏) 這是由GFXBench圖形性能測試套件提供的一個著名3D圖形渲染場景。 它模擬了一個復雜的未來都市環境(類似曼哈頓&#xff…

2025年6月最新SCI-灰熊脂肪增長優化算法Grizzly Bear Fat Increase-附Matlab免費代碼

引言 本期介紹一種受自然啟發的創新算法——灰熊脂肪增長優化算法Grizzly Bear Fat Increase optimizer,GBFIO。GBFIO算法模仿灰熊為準備過冬而積累身體脂肪的自然行為,借鑒了它們的狩獵、捕魚、吃草、蜂蜜等策略。于2025年6月發表在JCR 1區&#xff0c…

Pytorch實現一個簡單的貝葉斯卷積神經網絡模型

貝葉斯深度模型的主要特點和實現說明:模型結構:結合了常規卷積層(用于特征提取)和貝葉斯線性層(用于分類)貝葉斯層將權重視為隨機變量,而非傳統神經網絡中的確定值使用變分推斷來近似權重的后驗…

Dubbo 3.x源碼(32)—Dubbo Provider處理服務調用請求源碼

基于Dubbo 3.1,詳細介紹了Dubbo Provider處理服務調用請求源碼 上文我們學習了,Dubbo消息的編碼解的源碼。現在我們來學習一下Dubbo Provider處理服務調用請求源碼。 當前consumer發起了rpc請求,經過請求編碼之后到達provider端,…

每日一leetcode:移動零

目錄 解題過程: 描述: 分析條件: 解題思路: 通過這道題可以學到什么: 解題過程: 描述: 給定一個數組 nums,編寫一個函數將所有 0 移動到數組的末尾,同時保持非零元素的相對順序。 請注意 ,必須在不復制數組的情況下原地對數組進行操…

6-Django項目實戰-[dtoken]-用戶登錄模塊

1.創建應用 python manage.py startapp dtoken 2.注冊應用 settings.py中注冊 3.匹配路由4.編寫登錄功能視圖函數 import hashlib import json import timeimport jwt from django.conf import settings from django.http import JsonResponse from user.models import UserPro…

Axure日期日歷高保真動態交互原型

在數字化產品設計中,日期日歷組件作為高頻交互元素,其功能完整性與用戶體驗直接影響著用戶對產品的信任度。本次帶來的日期日歷高保真動態交互原型,依照Element UI、View UI等主流前端框架為參考,通過動態面板、中繼器、函數、交互…

【YOLOv4】

YOLOv4 論文地址::【https://arxiv.org/pdf/2004.10934】 YOLOv4 論文中文翻譯地址:【深度學習論文閱讀目標檢測篇(七)中文版:YOLOv4《Optimal Speed and Accuracy of Object Detection》-CSDN博客】 yol…

【秋招筆試】2025.08.03蝦皮秋招筆試-第一題

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? 筆試突圍在線刷題 bishipass.com 01. 蛋糕切分的最大收益 問題描述 K小姐經營著一家甜品店,今天她有一塊長度為 n n n 厘米的長條蛋糕需要切分。根據店里的規定,她必須將蛋糕切成至少 2 2