首页/系统/信创系统运维速查/时间漂移与 chrony 同步失败
常见问题65 条

时间漂移与 chrony 同步失败

时间漂移完看服务与源:chronyc tracking 看偏差、sources -v 看可达性;内网受限时改内网 NTP 源,再校正并观察。

信创系统运维速查系统更新于 2026-10-13

时间漂移的表现与影响

时间漂移的典型表现是日志时间戳与实际不符、集群节点之间时间差达到秒级、依赖证书与令牌校验的业务开始报错。对认证、审计和分布式事务而言,时间是最基础的假设之一,同步失败往往不会直接报错,而是以难以解释的业务异常呈现。

先看服务再看源

排查顺序是:同步服务是否在运行,配置的时钟源是否可达,是否已经选中并收敛到某个源。内网隔离环境最常见的原因是配置里仍写着公网时钟源,网络不通导致长期不同步;其次是防火墙没放行同步端口,域名能解析不代表协议可用。

基本信息

常用服务chrony,服务名 chronyd
配置路径/etc/chrony.conf,含时钟源与漂移文件
协议与端口NTP 使用 UDP 123
关键命令chronyc tracking、chronyc sources -v、chronyc makestep

典型使用场景

  • 集群节点时间差过大导致业务校验失败
  • 内网隔离环境无法访问公网时钟源,需要改指向内网源
  • 虚拟机快照回滚后时间倒退,需要立即校正
  • 审计要求提供时间同步的配置与运行状态证据
  • 排查证书报错时先确认系统时间是否准确

诊断

诊断
systemctl status chronyd --no-pager | head        # 服务是否运行
chronyc tracking                                  # 偏差、参考源与同步状态
chronyc sources -v                                # 各时钟源状态,看是否选中
chronyc sourcestats | head                        # 各源统计与估计偏差
timedatectl                                       # 系统时间与同步开关

处置

处置
vim /etc/chrony.conf                              # 换成可达的内网时钟源
systemctl restart chronyd
chronyc sources -v && chronyc tracking            # 观察是否选中并逐渐收敛
chronyc makestep                                  # 偏差过大时立即校正(需配置允许)
firewall-cmd --add-port=123/udp --permanent && firewall-cmd --reload   # 放行同步端口

输出项读法

字段含义正常表现
Reference ID当前使用的参考源为配置的可用源,非默认占位值
Stratum距离基准源的层级数值较小且稳定
System time与参考源的时间偏差在毫秒级并持续收敛
sources 前缀符号源的状态标识出现表示已被选中的标记
Leap status闰秒处理状态Normal
隔离内网要指定内网时钟源或本地时钟源;虚拟机场景还要注意宿主机时间策略,宿主机自身不准时,guest 同步到外部源也只是把误差搬了个位置。

易错点

  • 配置文件里保留不可达的公网时钟源,服务看似运行却长期不同步,用状态命令才能发现
  • 只确认域名或主机可解析,没放行同步端口,同步始终失败
  • 漂移文件路径未配置或不可写,服务重启后偏差从头累积
  • 校正时间时未评估对业务的影响,时间跳变导致定时任务与令牌校验出现连锁异常

数据来源与参考

  • man 5 chrony.conf
  • man 1 chronyc
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌