首页/系统/Linux 运维命令速查/场景:服务器时间同步排查
网络命令82 条

场景:服务器时间同步排查

时间漂移会让证书校验失败、日志对不上、分布式系统报错:timedatectl 看状态,chrony 看源与偏差,必要时手动步进。

Linux 运维命令速查系统更新于 2026-10-13

时间同步排查

时间漂移不只是显示问题:证书校验依赖时间戳,分布式系统靠时间戳排序,日志跨机器对齐也靠它。排查分两步,先用 timedatectl 看系统时钟是否处于同步状态,再用 chronyc 看时间源的可达性与偏差量。需要立刻校正时用 makestep 强制步进,但要先评估对业务的影响。

基本信息

典型表现证书报时间无效、日志顺序错乱、集群节点互相拒绝
排查组合timedatectl status + chronyc tracking + chronyc sources -v
应急校正chronyc makestep 立即步进,chronyc waitsync 等待收敛
适用范围systemd 发行版上的 chrony 或 ntpd 时间服务

典型使用场景

  • HTTPS 请求报证书尚未生效或已过期,实为系统时间跑偏
  • 日志里同一请求的时间戳比上游还早,怀疑节点间时间不一致
  • 虚拟化环境长时间挂起后恢复,时钟出现明显跳变
  • 内网禁止外网 UDP 后 NTP 同步失败,需要换用内网时间源
  • 调整时区后服务仍按旧时区写日志

状态检查

状态检查
timedatectl status                 # 关注 System clock synchronized 与 NTP service
timedatectl show-timesync --all    # 更细的同步状态字段
chronyc tracking                   # 本机与时间源的偏差、频率误差
chronyc sources -v                 # 时间源列表,看每行前缀符号判断可达性
chronyc sourcestats                # 每个源的统计与偏移
systemctl status chronyd           # 服务本身是否在跑

应急校正

应急校正
sudo chronyc makestep                # 立即步进校时,日志会记录时间跳变
chronyc waitsync 30 0.01             # 等待偏差收敛到 10 毫秒内(最多 30 秒)
sudo systemctl restart chronyd       # 改完配置后重载服务
date; timedatectl                    # 复核本机时间与时区

检查项读法

检查项正常值异常含义
System clock synchronizedyesno 表示尚未同步,先查时间源可达性
NTP serviceactiveinactive 说明时间服务没在运行
chronyc sources 前缀 ^*带星号即当前选中源^? 表示该源不可达或未同步
tracking 的 System time偏差越小越好持续在秒级说明同步没生效
Timezone与业务预期一致时区错会让日志时间看似漂移
容器共享宿主机的时钟,容器里既改不了也不必改;容器内发现时间不对,应回到宿主机检查 chronyd 与时间源配置。

易错点

  • makestep 会让系统时间跳变,数据库、分布式协调服务对时间跳变敏感,能等渐进校正就等
  • 防火墙没有放行 NTP(通常 123/udp)时同步会一直失败,chronyc sources 里长期是未同步符号
  • chrony 与 ntpd 同时安装并启用会互相抢占时钟,只保留一个时间服务
  • 虚拟机快照恢复、睡眠唤醒后时间可能大幅偏移,恢复流程里要显式做一次同步并复核

数据来源与参考

  • man 1 chronyc(chrony 官方文档)
  • man 1 timedatectl(systemd 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌