云服务器时间总跑偏?用 chrony 做时间同步与排错

举报
yd_266847877 发表于 2026/10/30 10:30:27 2026/10/30
【摘要】 服务器时间跑偏会影响日志、证书与定时任务。本文介绍 chrony 的安装启用、上游源配置与 UDP 123、服务冲突、时区偏差等常见排错方法。

服务器时间跑偏看起来是小事,实际上会连锁影响日志对齐、证书校验、定时任务和分布式事务。本文用 chrony 做一次完整的时间同步与排错,适合新装的云服务器照着做。

先看现状

先确认当前时间、时区和同步状态,不要一上来就改配置:

date; timedatectl; chronyc tracking; chronyc sources -v

重点看三项:系统时间与标准时间是否接近;时区是不是 Asia/Shanghai;chrony 是否已经在同步。如果 timedatectl 显示 NTP service 为 inactive,说明还没有启用同步。

安装并启用 chrony

主流发行版可以直接安装并设为开机自启:

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

注意服务名在不同发行版可能是 chronyd 或 chrony,status 报错时先用 systemctl list-units | grep chrony 确认。

配一个可靠的上游源

默认源通常可用,但跨地域或内网环境建议显式配置。编辑 /etc/chrony.conf,保留一到两个可达的上游,例如:

pool pool.ntp.org iburst
server time1.cloud.tencent.com iburst
makestep 1.0 3
rtcsync

makestep 的含义是:开机后如果偏差超过 1 秒,在前 3 次更新内允许直接跳变,而不是慢慢追赶。这对刚启动、偏差较大的云服务器很友好。改完配置要重启服务并重新观察:

sudo systemctl restart chronyd
sleep 5; chronyc tracking; chronyc sources

常见排错清单

  1. 防火墙或安全组拦截:NTP 走 UDP 123,出方向被拦截时 sources 会一直显示问号,先放行出方向 UDP 123 再看。
  2. 多个时间服务冲突:ntpd、systemd-timesyncd 和 chrony 不要同时跑,留一个即可,否则会互相抢占。
  3. 虚拟化时间漂移:宿主机时间本身不准时,客户机再怎么同步也难稳定,先确认宿主机或云平台的时间源。
  4. 时区不对:date 显示 UTC 但业务按北京时间判断时,先用 timedatectl set-timezone Asia/Shanghai 修正,再核对日志时间。
  5. 偏差过大:偏差超过几分钟时,先用 chronyc makestep 手动跳变一次,再让 chrony 进入正常跟踪。

上线前核对表

  • timedatectl 显示 System clock synchronized: yes;
  • chronyc tracking 的 Leap status 为 Normal;
  • 重启一次服务后,5 分钟内仍能保持同步;
  • 关键定时任务的下次执行时间与预期一致。

把时间同步当作服务器的基线配置做进初始化脚本,后续排查日志、证书和定时任务时,至少不会先被时间问题带偏。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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