Linux 服务器时间总漂移?chrony 对时一次讲清

举报
yd_211833921 发表于 2026/11/03 06:48:58 2026/11/03
【摘要】 用 chrony 解决 Linux 服务器时间漂移:安装配置、chronyc 查看同步状态、与 ntpdate 的区别及常见排查清单。

服务器时间跑偏,乍看只是差了几秒,实际却可能让订单时间错乱、日志对不上号、证书提前过期、分布式锁和定时任务接连出问题。很多时候并不是系统“坏了”,而是本地时钟一直在以自己的速度走,和标准时间越差越远。对大多数 Linux 服务器来说,chrony 是目前最省心的对时工具:它既能在开机时把时间拉回来,也能在运行中持续、平滑地修正偏差。

一、时间为什么会漂移

普通服务器靠主板晶振计时,晶振本身就有微小误差,温度变化、负载波动都会放大它。虚拟机还会遇到宿主机调度、快照恢复、挂起后再恢复等情况,客户机时钟可能一下子跳变。容器共享宿主机时钟,宿主机不准,容器也跟着不准。所以对时不能只靠某一次手动校准,而要有一个常驻服务持续盯着。

二、安装并启动 chrony

主流发行版都自带 chrony,没有的话用包管理器安装即可:

# RHEL / CentOS / openEuler 系
dnf install -y chrony
# Debian / Ubuntu 系
apt install -y chrony
systemctl enable --now chronyd
systemctl status chronyd

注意服务名在不同发行版里可能是 chronyd 或 chrony,启动失败时先用 systemctl status 看具体报错,不要凭感觉反复重启。

三、配置时间源

配置文件一般是 /etc/chrony.conf。时间源要选离自己近、稳定可靠的上游,数量不用多,三到四个就够了,太多反而互相干扰。

pool pool.ntp.org iburst
server ntp.aliyun.com iburst
makestep 1.0 3
rtcsync

其中 iburst 表示首次同步时加快探测,makestep 1.0 3 表示开机前三次检测中、偏差超过 1 秒时允许直接步进校正,rtcsync 表示把系统时间定期写回硬件时钟。改完配置要重启服务:systemctl restart chronyd。生产环境改配置前,先备份原文件,并确认防火墙放行了 UDP 123 端口,否则时间源再好也同步不上。

四、用 chronyc 看同步状态

chrony 自带 chronyc 命令,不用猜测,直接看数据:

chronyc tracking
chronyc sources -v
chronyc activity

tracking 里最值得看的是 Stratum(层级,数字越小越接近标准源)、System time(当前系统时间与参考时间的偏差)、Last offset(上一次修正量)和 Leap status(闰秒状态)。sources -v 里带星号的源是当前正在使用的源,Reach 为 377 说明最近 8 次探测全部成功;如果 Reach 很低或长时间为 0,基本可以判定网络或上游源有问题。

五、chrony 和 ntpdate 有什么区别

ntpdate 是一次性工具:执行一次就把时间直接跳到目标值,简单粗暴,但正在运行的数据库、消息队列和定时任务可能被跳变打乱。chrony 默认采用平滑修正:偏差小时慢慢追,偏差大时才步进,运行中的业务更不容易受惊。ntpdate 更适合装机初始化或时钟已经差了很远、服务尚未启动的场景;日常对时,优先用 chrony 常驻服务。

六、漂移排查清单

时间还是不准时,按这个顺序查:一是 chronyc sources 是否有可用源,Reach 是否正常;二是 timedatectl 看时区是不是 Asia/Shanghai,NTP service 是否为 active;三是云服务器是否同时开了宿主机时间同步,导致两边互相打架;四是检查 UDP 123 是否被安全组或防火墙拦截;五是看系统日志有没有 chronyd 报错。多数问题出在前两项,改一堆配置之前,先把状态输出看清楚。

一句话总结:先用 chronyc tracking 和 sources 确认“现在差多少、有没有可靠源”,再决定改配置还是放行端口。对时这件事,持续、平滑、可观测,比某一次手动敲对更重要。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。