【NTP系列】chrony同步原理
1、时间请求与响应
- 客户端向服务器发送 NTP 请求报文,记录发送时间 T1。
- 服务器收到请求后,记录接收时间 T2,并返回响应报文,包含:
- T2(服务器接收时间)
- T3(服务器发送响应时间)
- 客户端收到响应后记录时间 T4。
2、计算时间偏差
- 客户端通过公式计算与服务器的时间偏差(Offset):
Offset = [(T2 - T1) + (T3 - T4)] / 2
3、调整时钟
- 若偏差较小(默认 <1 秒),Chrony 通过 调整时钟频率 逐步纠正时间。
- 若偏差较大(≥1 秒),Chrony 直接 步进(stepping) 调整时间(需配置 makestep 参数)。
4、验证同步状态
在客户端执行以下命令验证同步是否成功:
# 查看当前同步源状态
chronyc sources -v
# 输出示例
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.88.123 3 6 377 39 +156us[ +156us] +/- 12ms
# 查看时间偏差和频率调整状态
chronyc tracking
# 输出示例
Reference ID : C0A80164 (192.168.88.123)
Stratum : 4
Ref time (UTC) : Thu Oct 5 14:23:45 2023
System time : 0.000156 seconds slow of NTP time
Last offset : +0.000123 seconds
RMS offset : 0.000045 seconds
Frequency : 1.234 ppm slow
Residual freq : +0.001 ppm
Skew : 0.123 ppm
Root delay : 0.012345 seconds
Root dispersion : 0.000123 seconds
Update interval : 64.2 seconds
Leap status : Normal
^* 表示当前使用的参考源。
Last offset 显示最后一次同步的时间偏差(应为微秒级)。