当前位置:首页 > 云服务器

Linux 时钟源与时间同步原理

游戏科技网2026年09月14日 21:54云服务器20
描述:Linux有系统时间(CPU tick维持)和硬件时间(RTC晶振维持),需用chronyd渐进同步并写回RTC;禁用ntpdate跳变,云服务器应优先用systemd-timesyncd。Linux 有两个时间,别搞混了系统启动时,内核从硬件时钟(RTC)读一次时间设为系统时间;之后两者就各自走各…
Linux有系统时间(CPU tick维持)和硬件时间(RTC晶振维持),需用chronyd渐进同步并写回RTC;禁用ntpdate跳变,云服务器应优先用systemd-timesyncd。

Linux 时钟源与时间同步原理

Linux 有两个时间,别搞混了

系统启动时,内核从硬件时钟(RTC)读一次时间设为系统时间;之后两者就各自走各自的——系统时间靠 CPU tick 累加维持,硬件时钟靠主板电池供电的晶振维持。你用 date 看到的是系统时间,用 hwclock -r 看到的是硬件时间。它们长期不同步是常态,尤其重启后没做同步的话,差几分钟很常见。

  • 系统时间不准 → 影响日志时间戳、定时任务触发、Kafka 消息时间戳、ZooKeeper 会话超时(30 秒偏差就会断连)
  • 硬件时间不准 → 下次开机直接继承错误时间,雪上加霜
  • 所以同步完成后,记得用 hwclock -w 把校准后的系统时间写回硬件时钟

ntpdate 和 ntpd/chronyd 的本质区别

ntpdate 是“一刀切”:发现当前时间比 NTP 服务器慢 5 分钟,立刻把系统时间拨快 300 秒。这会导致 cron 任务重复执行、Java 应用里 System.currentTimeMillis() 突然倒退、数据库事务时间戳乱序等真实故障。而 ntpdchronyd 是“渐进式”:它通过微调内核时钟频率(tick rate),让时间在几十秒甚至几分钟内慢慢追上,不跳变、不倒流。

  • RHEL/CentOS 7+ 默认用 chronyd,不是 ntpd;RHEL 8+ 已移除 ntp 包,chrony 是唯一官方支持方案
  • 生产环境严禁只跑 ntpdate 就完事;正确做法是先用 ntpdate -u 快速粗调(比如偏差 > 1 秒),再启 chronyd 做细调
  • chronyd 对虚拟机、断网重连、网络抖动更友好,ntpd 在持续在线的物理机上更稳,但新系统别纠结,直接用 chronyd

/etc/chrony.conf 里最关键的三行配置

默认配置往往连不上国内可用源,得手动改。重点不是加多少 server,而是控制行为逻辑:

Linux 时钟源与时间同步原理
腾讯云文字识别(通用高精度版)

腾讯云通用文字识别(高精度版)技能包。用户发送/粘贴图片、提供图片URL或要求识别图片文字时自动调用。支持中文、英文、中英混合、数字及特殊符号的检测与识别,返回文字框位置与内容。适用于文字较多、版式复杂、准召率要求高的场景。

下载
  • server ntp.aliyun.com iburst:用阿里云公共 NTP 源(免备案、低延迟),iburst 表示首次连接时发多个包加速同步
  • makestep 1.0 3:如果系统时间偏差超过 1 秒,允许前 3 次启动时“跳变”校正(避免 chronyd 启动失败卡住)
  • rtcsync:启用内核 RTC 同步,让硬件时钟每 11 分钟自动对齐一次系统时间,防止关机后 RTC 漂移

别碰 driftfilehwtimestamp——前者是 chrony 自己管的偏移记录,后者需要 NIC 硬件支持,普通服务器开了反而报错。

验证同步是否真生效,别信 timedatectl status 的表面状态

timedatectl status 显示 “NTP enabled: yes” 和 “NTP synchronized: yes” 只代表服务在跑、上次同步没失败,不代表当前时间准。真正要看的是:

  • chronyc tracking:看 Offset 字段,单位是秒,理想值应1s,说明没同步成功或源不可达
  • chronyc sources -v:看列出的 server 是否有 *(当前主源)或 +(候选源),全都是 ? x 就是网络不通或防火墙拦了 UDP 123 端口
  • chronyc makestep:强制立即跳变同步(仅调试用),执行后立刻再跑 chronyc tracking 看 offset 是否归零

最常被忽略的一点:云服务器(如阿里云、腾讯云)默认禁用 NTP 客户端,靠宿主机注入时间;如果你手动启了 chronyd,反而可能和宿主机时间打架,导致 offset 持续震荡——这种场景下,应该关掉 chronyd,改用 systemd-timesyncd(轻量级,只 client 不 server)。

“Linux 时钟源与时间同步原理” 的相关文章

5元云服务器:入门级新手首选

5元云服务器:入门级新手首选 我是一名刚毕业的大学生,对编程充满了热情,但现实总是骨感一些。刚踏入职场,我梦想着能独立开发一个网站或应用,却苦于没有足够的资源。买一台实体服务器太贵,租个虚拟空间又觉得…

6元服务器租用,高性价比VPS主机推荐

6元服务器租用,高性价比VPS主机推荐 记得去年我刚开始创业,做了一个小型网站来展示我的产品。那时,我手头紧,预算有限,却急着需要一个可靠的服务器来托管网站。作为一个普通上班族,我对技术懂得不多,但我…

2021年云服务器优惠套餐推荐

2021年云服务器优惠套餐推荐 嗨,朋友们!你是否曾经在深夜里,面对一堆代码和服务器错误,感叹说:“为什么我的项目老是卡顿?”如果是这样的话,那你可能正在寻找2021年云服务器优惠套餐的解决方案。作为…

云服务器市场增长

云服务器市场增长 大家好,作为一个每天依赖云服务器的开发者,我亲身感受到市场的飞速膨胀。想象一下,几年前我还得在办公室的老旧电脑前苦苦挣扎,处理数据时总是卡顿不堪,但现在,只需轻轻一点,就能在云端获得…

1元买走一台云服务器,这种天上掉馅饼的事存在吗?

1元买走一台云服务器,这种天上掉馅饼的事存在吗? 那天,我在咖啡馆里刷手机,偶然看到一个广告:“只需1元,就能买走一台高性能云服务器!容量无限,稳定快速,适合创业和学习。”我的心跳突然加速了。作为一个…

云服务器10元月:经济型服务价格新记录

云服务器10元/月:经济型服务价格新记录 最近,云服务器的价格被推向了一个新低,10元一个月的方案让许多人惊喜不已。这不仅仅是数字上的变化,更是科技服务普惠化的一个标志。云服务器作为一种基于云计算的虚…