Linux 系统时间总漂移?用 chrony 把 NTP 配稳的完整做法

举报
yd_224380536 发表于 2026/11/02 08:51:11 2026/11/02
【摘要】 系统时间不准看起来是小事,实际影响很大:日志时间戳对不上、证书校验失败、定时任务跑偏、数据库主从复制出现异常,都可能源于时钟漂移。本文按排查到配置的顺序,把一台 Linux 服务器的时间配稳。 一、先确认当前状态执行 timedatectl,重点看三项:Local time 是否与标准时间一致,System clock synchronized 是否为 yes,NTP service 是否为...

系统时间不准看起来是小事,实际影响很大:日志时间戳对不上、证书校验失败、定时任务跑偏、数据库主从复制出现异常,都可能源于时钟漂移。本文按排查到配置的顺序,把一台 Linux 服务器的时间配稳。

一、先确认当前状态

执行 timedatectl,重点看三项:Local time 是否与标准时间一致,System clock synchronized 是否为 yes,NTP service 是否为 active。如果 synchronized 是 no,说明本机还没有成功同步过,先不要急着改配置,往下查服务与网络。

再看 chronyc tracking,输出里的 Reference ID、Stratum、System time 一项能告诉你当前时间与参考源的偏差。偏差在毫秒级属于正常;如果偏差持续增大,说明同步根本没生效。

二、chrony 与旧的 ntpd 二选一

新系统一般默认 chrony,它对间歇联网、虚拟机挂起恢复的适应性更好。不要让 chrony 和 ntpd 同时运行,两者抢端口会互相干扰。检查 systemctl status chronyd 与 systemctl status ntpd,只保留一个处于 active,另一个停用并禁用开机自启。

三、安装与配置 chrony

Debian/Ubuntu 用 apt install chrony,RHEL 系用 dnf install chrony。主配置文件是 /etc/chrony.conf,关键是 server 行。建议至少配 3 到 4 个时间源,同一机房或同一云厂商内网的时间源优先,延迟更低也更稳定;公网源作为补充。不要只配一个源,单个源挂掉后本机就会慢慢漂移。

配置里建议保留 makestep 1.0 3,意思是开机前 3 次更新内、偏差超过 1 秒就直接跳变校正,而不是慢慢追赶。这对刚开机的云服务器尤其重要,否则启动阶段的日志和定时任务都会带着错误时间跑。

改完配置执行 systemctl restart chronyd,再用 chronyc sources -v 确认每个源的状态:^ * 表示当前正在使用的源,^ + 表示可用候选,^ ? 表示尚未建立联系。如果所有源都是问号,先查网络。

四、网络与防火墙最容易卡住

NTP 走 UDP 123 端口。云服务器要同时查两层:云厂商安全组是否放行 UDP 123 出方向,服务器本机防火墙是否放行。很多人只查了一层,另一层拦着,同步就一直失败。排查时先在本地执行 chronyc activity 看在线源数量,再用 ss -tulnp | grep 123 确认 chronyd 是否在监听。

如果服务器在内网且不能直接访问公网,不要硬配公网源,改用机房内的时间源或内网 NTP 服务器,内网源通常由云厂商提供,延迟只有几毫秒。

五、虚拟机时间漂移的特殊处理

虚拟机挂起、宿主机负载过高、快照恢复后,客户机时钟容易跳变。除了 chrony,还要确认虚拟化时间同步机制是否开启,例如 KVM 的 kvm-clock、VMware Tools 的时间同步。两者冲突时以 chrony 为准,关闭虚拟化层面的强制时间同步,避免两边来回拉扯。

日常运维里,建议把 chronyc tracking 的 System time 偏差纳入巡检:偏差长期超过 100 毫秒就值得查一次;配合 timedatectl 的检查,一分钟就能判断时间服务是否健康。时间准了,日志、证书、定时任务和复制链路的很多怪问题会自然消失。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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