首页/安全/取证与溯源速查/测量主机时钟偏移量
溯源思路与流程68 条

测量主机时钟偏移量

时间线还原前先量化目标主机的时钟偏差:chrony 与 Windows 时间服务都提供与参考源的差值读数,作为时间修正的依据。

取证与溯源速查安全更新于 2026-10-13

先量化偏差再谈修正

时间线还原前必须把目标主机的时钟偏差量化出来,否则无法判断两条来源之间的时间差是时区问题、时钟漂移还是事件本身就有先后。Linux 上 chrony 的 chronyc tracking 会给出本机时钟相对参考源的当前差值,Windows 上 w32tm 的 stripchart 可以按样本对比参考源。测量值要连同测量时刻一起记录:漂移会随时间变化,一次读数只对相邻的一段时间有效。

基本信息

Linux 工具chronyc tracking(差值)、chronyc sources(参考源状态)、ntpq -p(ntpd)
Windows 工具w32tm /stripchart /dataonly(对比参考源)、w32tm /query /status(同步状态)
关键读数System time / Last offset(当前差值)、RMS offset(平均波动)、Frequency/Skew(漂移率)
测量前提需要与可信参考源通信;离线环境可用外部时钟或另一台已校准主机
记录要素测量时刻、测得的偏移量与方向、使用工具与原始输出
误差考虑网络往返与不对称会带入毫秒级误差,秒级以上偏差远超这一量级

典型使用场景

  • 离线主机日志与流量时间对不上,先测出差值以确定修正量
  • 判断差值是整数小时的时区错位,还是几十秒的时钟漂移
  • 多台主机合并前逐台测量,避免用一台的偏移去修正全部
  • 虚拟机暂停恢复后重新测量,确认是否发生跳变
  • 域环境中确认客户端同步对象,测量域控比测量客户端更有意义
  • 为报告给出时间精度说明:判定精度受时钟误差影响的程度

两侧测量

两侧测量
# chrony:看当前差值、平均波动与漂移率
chronyc tracking | sed -n '1,8p'
# 参考源列表与状态,确认是否真的同步上了
chronyc sources -v | sed -n '1,6p'
# 传统 ntpd 环境
ntpq -p
# Windows(管理员 PowerShell):对参考源取多个样本,仅要数据
w32tm /stripchart /computer:time.windows.com /samples:3 /dataonly
# Windows:查看当前同步状态与本机时间源
w32tm /query /status
# 记录测量时刻,作为修正区间的起点
date -u +"%Y-%m-%dT%H:%M:%SZ"

chronyc tracking 读数逐项

读数含义判读要点
Reference ID当前参考源为 0 或异常值说明未同步成功,本轮读数不可用
System time本机时钟相对参考源的差值(正为快)修正方向由它决定,务必抄下符号
Last offset上一次校时的偏移量与 System time 结合看趋势
RMS offset偏移的均方根波动数值大说明时钟不稳定,需更频繁测量
Frequency本机晶振相对参考的漂移率(ppm)用于估算两次测量之间偏移的增长量
Skew频率估计的误差范围Skew 很大时偏移推算不可靠
瞬时读数接近 0 不等于整段历史都没有偏移:若主机在此前长时间未同步,早期事件仍可能带有明显偏差。跨天分析要在多个时间点重复测量,比持续漂移量更有参考价值的是偏移随时间的变化趋势。
虚拟机时钟漂移通常比物理机大,快照恢复、暂停与迁移都可能造成一次性跳变;测量前先确认这段时间内有没有发生过快照恢复或宿主机高负载。

易错点

  • 只测一次就外推整天,忽略中途的 NTP 校时与虚拟机跳变
  • 抄读数时漏掉正负号,修正方向反了,误差翻倍
  • 参考源本身不可信或未同步成功(Reference ID 异常)仍照抄读数
  • 域环境中测量客户端而不同时测域控,把域控的偏差误记为客户端偏差
  • 不记录测量时刻,后续无法界定该修正量适用的时间区间

数据来源与参考

  • chrony 官方文档(chronyc)
  • Microsoft Learn(w32tm)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌