Linux 时间同步的流程

一、问题时间

RTC时间、系统时间(UTC)和本地时间的关系如下:

  1. RTC时间‌(硬件时钟):

    • 显示为UTC时间格式:02:50:35/02:51:28
    • 由主板电池供电,独立于系统运行‌12
    • 通常存储UTC时间(Linux默认配置)‌45
  2. 系统时间‌:

    • Universal time(UTC时间):02:50:33/02:51:20
    • Local time(本地时间):10:50:33/10:51:20(UTC+8时区转换结果)‌56
    • 系统启动时从RTC读取UTC时间初始化,之后由内核维护‌17
  3. 时间偏差分析‌:

    • 实际时间16:51与本地时间10:51相差6小时
    • 可能原因:
      • RTC被错误设置为本地时间而非UTC(但timedatectl显示"RTC in local TZ: no"排除了这种情况)‌68
      • NTP同步未生效(显示"NTP synchronized: no")‌910
      • 硬件时钟电池供电异常导致RTC时间漂移‌211
真实时间 (16:51 CST)  ├─ 应映射为→ UTC时间 (08:51)     │      ├─ RTC应存储为→ 08:51 (UTC)    │      └─ 系统UTC时间应显示为→ 08:51             │             └─ 时区转换后→ 16:51 CST  └─ 当前异常状态:RTC存储为→ 02:51 (UTC)系统UTC时间→ 02:51时区转换后→ 10:51 CST

二、systemd-timesyncd 轻量级方案

📌 适用场景:桌面环境/轻负载服务器,精度需求 ±100ms 以内‌13

# 1. 安装与验证
sudo apt install systemd-timesyncd   # Debian/Ubuntu
sudo yum install systemd-timesyncd   # CentOS/RHEL‌:ml-citation{ref="5,9" data="citationList"}
timedatectl status                   # 检查服务状态

# 2. 配置核心参数(/etc/systemd/timesyncd.conf
[Time]
NTP=ntp.aliyun.com ntp.tencent.com  
# 首选NTP服务器
FallbackNTP=ntp.ubuntu.com           # 备用服务器
RootDistanceMaxSec=5                 # 最大允许时间偏差
PollIntervalMinSec=32                # 最小轮询间隔‌:ml-citation{ref="4,6" data="citationList"}

# 3. 生效配置
sudo systemctl daemon-reload           # 重载配置
sudo systemctl restart systemd-timesyncd
sudo systemctl
enable systemd-timesyncd # 设置开机自启‌:ml-citation{ref="7" data="citationList"}

# 4. 验证同步状态
timedatectl | grep "synchronized"      # 显示 yes 即成功
journalctl -u systemd-timesyncd -f     # 实时查看同步日志‌:ml-citation{ref="6,9" data="citationList"}

三、chronyd 高精度方案

📌 适用场景:虚拟机/集群环境/不稳定网络,精度需求 ±1ms‌110

# 1. 安装与启动
sudo yum install chrony        # CentOS/RHEL
sudo apt install chrony        # Debian/Ubuntu
sudo systemctl enable --now chronyd‌:ml-citation

# 2. 优化配置(/etc/chrony.conf
server ntp.aliyun.com iburst   # iburst 加速初始同步
server cn.pool.ntp.org iburst
driftfile /var/lib/chrony/drift
# 时钟漂移记录
makestep 1.0 3                 # 偏差>1秒时强制步进调整
allow 192.168.0.0/24           # 授权内网同步(服务端需启用)‌:ml-citation{ref="8,10" data="citationList"}

# 3. 防火墙放行
sudo firewall-cmd --add-service=ntp --permanent
sudo firewall-cmd --reload‌:ml-citation

# 4. 管理指令
chronyc tracking               # 查看时间偏差(关注 Last offset
chronyc sources -v             # 检查NTP源质量
chronyc makestep               # 强制立即同步‌:ml-citation

四、相关操作实例

[root@localhost tmp]# systemctl status chronyd ntp
● chronyd.service - NTP client/serverLoaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)Active: active (running) since Mon 2025-07-21 16:13:14 CST; 2 days agoDocs: man:chronyd(8)man:chrony.conf(5)  Process: 669 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)Process: 576 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)Main PID: 598 (chronyd)Tasks: 1Memory: 1.1MCGroup: /system.slice/chronyd.service└─598 /usr/sbin/chronyd
[root@localhost tmp]# systemctl restart chronyd
[root@localhost tmp]# systemctl status chronyd ntp
● chronyd.service - NTP client/serverLoaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)Active: active (running) since Thu 2025-07-24 11:01:22 CST; 5s agoDocs: man:chronyd(8)man:chrony.conf(5)Process: 5159 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)Process: 5156 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)Main PID: 5158 (chronyd)Tasks: 1Memory: 436.0KCGroup: /system.slice/chronyd.service└─5158 /usr/sbin/chronyd
Jul 24 11:01:22 localhost.localdomain systemd[1]: Stopped NTP client/server.
Jul 24 11:01:22 localhost.localdomain systemd[1]: Starting NTP client/server...
Jul 24 11:01:22 localhost.localdomain chronyd[5158]: chronyd version 3.4 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYN... +DEBUG)
Jul 24 11:01:22 localhost.localdomain chronyd[5158]: Frequency -222219.096 +/- 109.213 ppm read from /var/lib/chrony/drift
Jul 24 11:01:22 localhost.localdomain systemd[1]: Started NTP client/server.
Unit ntp.service could not be found.
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost tmp]# timedatectl statusLocal time: Thu 2025-07-24 17:01:42 CSTUniversal time: Thu 2025-07-24 09:01:42 UTCRTC time: Thu 2025-07-24 09:01:41Time zone: Asia/Shanghai (CST, +0800)NTP enabled: yes
NTP synchronized: yesRTC in local TZ: noDST active: n/a
[root@localhost tmp]# chronyc tracking
Reference ID    : D21C8204 (time.nju.edu.cn)
Stratum         : 2
Ref time (UTC)  : Thu Jul 24 09:01:26 2025
System time     : 3.836876392 seconds slow of NTP time
Last offset     : +0.561115086 seconds
RMS offset      : 0.561115086 seconds
Frequency       : 222219.094 ppm slow
Residual freq   : +181675.438 ppm
Skew            : 109.213 ppm
Root delay      : 0.041683048 seconds
Root dispersion : 8.131237984 seconds
Update interval : 3.1 seconds
Leap status     : Normal

五、方案对比与选型指南

‌特性‌

systemd-timesyncd

chronyd

‌精度‌

±100ms

±1ms

‌资源占用‌

极低(轻量级守护进程)

中等(需常驻内存)‌1

‌配置文件‌

/etc/systemd/timesyncd.conf

/etc/chrony.conf

‌适用场景‌

日常办公终端

K8s集群/数据库服务器‌12

‌网络适应性‌

依赖稳定网络

支持断网续同步‌110

‌关键命令‌

timedatectl status

chronyc tracking

⚠️ ‌关键注意‌

  1. 二者禁止同时启用,会冲突导致同步失败‌3
  2. 若硬件时钟电池老化,需更换后重新配置‌5
  3. 企业级集群建议部署专用NTP服务器‌1415

此手册覆盖主流场景的完整配置流程,systemd-timesyncd 满足基础需求,chronyd 则为高精度/复杂环境首选方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/90471.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/90471.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VSCode——python选择解释器消失的解决办法

VSCode软件的左下角 设置——检查更新:

笛卡尔积规避:JOIN条件完整性检查要点

笛卡尔积是数据库查询中的高风险操作,多表JOIN时缺失有效关联条件会导致结果集指数级膨胀,引发‌性能塌方‌甚至系统崩溃‌。以下是核心检查策略及防御方案:一、笛卡尔积的致命影响‌‌性能塌方‌百万级订单表与千万级用户表缺失ON条件时&…

Vimba相机二次开发教程,基于Python

文章目录安装获取图像辅助数据Vimba 是由 Allied Vision 开发的一套软件开发套件(SDK),主要用于控制和操作其工业相机产品。它提供了一套完整的 API 和工具,支持多种操作系统和编程语言,便于开发者快速集成相机功能到应…

电子测试行业软件ATECLOUD与ETEST对比分析-纳米软件

在当今科技飞速发展的时代,电测行业对于自动化测试平台的依赖程度日益加深。高效、精准的自动化测试平台不仅能够提升测试效率,还能确保产品质量。ATECLOUD 与 ETEST 作为电测行业中颇受瞩目的自动化测试平台,各自展现出独特的优势与特点。下…

自动化测试中的常见测试方法

自动化测试中的常见测试方法在自动化测试中,除了数据驱动(Data-Driven Testing),还有多种主流方法,每种方法适用于不同场景和需求。以下是常见的自动化测试方法分类及详解:一、关键字驱动测试(K…

口语01-don‘t judge a book by its cover

Dont judge a book by its cover 不要以貌取人1 the most advanced thing2 stack3 right4 frantically5 be annoyed with sb6 Get your stuff off my desk7 But today I came to class and was running a few minutes late.8 take my seat:占我座位 / 坐我的位置9 s…

《Uniapp-Vue 3-TS 实战开发》自定义预约时间段组件

这个组件可以直接在 uniapp 项目中使用,提供了 24 小时时段选择功能,支持单选 / 多选、预设时段选择、随机选择等功能。 html版本: <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="vi…

《Uniapp-Vue 3-TS 实战开发》自定义环形进度条组件

引言 在UniApp中使用Vue3和TypeScript开发环形进度条组件,我们可以考虑三种技术:Canvas、SVG和纯HTML(利用CSS)。考虑到兼容性、实现难度和效果,SVG是较好的选择。它可以轻松实现环形进度条,支持渐变色,并且可以通过属性精确控制进度,同时在不同分辨率屏幕上清晰显示…

MybatisPlus-17.扩展功能-JSON处理器

一.JSON处理器数据库中有的字段会以JSON格式来进行存储。类型为json类型。但是在java中我们没有这样的数据类型&#xff0c;一般会以字符串接收&#xff0c;这样就会导致如果想要从数据库中获取json格式中的key和value的话会比较麻烦&#xff0c;还要进行字符串操作。那么有没有…

【Web】DASCTF 2025上半年赛 wp

目录 phpms 再短一点点 泽西岛 phpms dirsearch请求太快会报429&#xff0c;要设置一手--delay&#xff0c;扫出来.git 跑一下githacker git stash list git stash show -p 注释的绕过参考&#xff1a;从国赛想到的一些php绕过注释符trick 发现很多函数都被disable了 这…

STM32-USART串口配置教程和printf函数实现(寄存器版)

本章概述思维导图通信介绍通信介绍概况通信&#xff0c;至少是需要两个对象&#xff0c;一个收一个发数据。根据数据通信的传输时序协调方式&#xff0c;可分为&#xff1a;同步通信和异步通信&#xff1b;根据数据通信的传输线路可分为&#xff1a;串行通信和并行通信&#xf…

4种灵活的方法从POCO手机中删除联系人

许多POCO用户经常需要清理联系人列表&#xff0c;删除重复或过时的条目&#xff0c;或者在出售或赠送手机之前删除个人或敏感联系人。无论是为了隐私、组织管理&#xff0c;还是仅仅是为了管理存储空间&#xff0c;高效地删除POCO手机中的联系人是至关重要的。本文将介绍4种智能…

航段导航计算机 (Segment_Navigator) 设计与实现

航段导航计算机 (Segment_Navigator) 设计与实现 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff0c;觉得好请收藏。点击跳转到网站。 1. 引言 航段导航计算机是现代航空电子系统中的关键组件&a…

input.1是onnx输入的名称,但是依然警告不是

导出动态轴的时候发现&#xff0c;明明input.1就是onnx的名字&#xff0c;但是依然有警告说不是&#xff1b;/miniconda3/envs/py38/lib/python3.8/site-packages/torch/onnx/utils.py:2078: UserWarning: Provided key input.1 for dynamic axes is not a valid input/output …

生成式人工智能展望报告-欧盟-02-技术方面

原文地址 摘要 本章的重点是GenAI的技术层面&#xff0c;首先是对其能力和局限性的评估。它强调了部署GenAI系统所带来的网络安全挑战。会议讨论了新出现的技术趋势&#xff0c;为决策者和利益攸关方提供了前瞻性的视角。关键问题包括确保GenAI应用程序的安全性和可靠性所需的…

人工智能与云计算双轮驱动:元宇宙如何重构全球产业生态

一、人工智能在元宇宙中的核心应用1. 内容生成与虚拟世界构建生成式AI&#xff08;AIGC&#xff09;&#xff1a;通过AI算法自动生成3D模型、虚拟场景和角色&#xff0c;显著降低内容制作成本和时间。例如&#xff1a;联想晨星元宇宙平台&#xff1a;利用AIGC技术实现低成本、高…

企业信息管理系统开发实战:基于 Spring Boot+MyBatis+Thymeleaf

引言&#xff1a;企业信息管理系统的核心价值在企业日常运营中&#xff0c;高效的信息管理是提升效率的关键。本文将手把手教你开发一套企业信息管理系统&#xff0c;涵盖用户登录、信息增删改查、权限控制等核心功能。系统采用 Spring Boot 作为后端框架&#xff0c;MyBatis 处…

NLP自然语言处理的一些疑点整理

PyTorch评估模式&#xff08;torch.no_grad和model.eval&#xff09;差异在PyTorch中&#xff0c;model.eval()和torch.no_grad()是模型评估和推理阶段的两个关键工具&#xff0c;它们各自扮演着不同的角色&#xff0c;但常常被一起使用以确保模型行为的正确性和计算效率。理解…

物流仓储自动化升级:Modbus TCP与DeviceNet的协议融合实践

一、项目背景在我们物流厂的日常运营中&#xff0c;分拣效率和仓储精准度一直是瓶颈。传统人工分拣不仅速度慢&#xff0c;还容易因疲劳出错&#xff1b;仓储区域的货物定位全靠人工记录&#xff0c;时常出现找货难、盘点耗时的问题。生产线的核心控制依赖施耐德PLC&#xff0c…

产品动态 | 同创永益IStorM Chaos 混沌工程平台V4.0震撼发布:智能驱动,筑牢系统稳定性防线

当混沌工程从试点走向企业级大规模推广&#xff0c;标准化缺失、专家依赖高、实施效率低等痛点成为阻碍系统稳定性升级的 “拦路虎”。此刻&#xff0c;同创永益重磅推出IStorM Chaos 混沌工程平台 V4.0&#xff0c;以智能技术为核心驱动力&#xff0c;为企业构建更高效、更灵活…