抓时间同步流量
时间同步使用 UDP 123 端口,抓它的报文可以判断同步是否正常进行:请求是否发出、服务器是否响应、响应是否稳定到达。时间漂移、同步失败、以及跨机日志时间对不上,都可以先从这条流量入手判断,避免在错误的方向上花时间。
基本信息
| 适用平台 | Linux / macOS / BSD 上的 tcpdump |
|---|---|
| 语法 | udp port 123 [and host <服务器>] |
| 端口说明 | 服务端口固定,客户端源端口可能为 123 或高位端口 |
| 常用选项 | -vv 展开协议字段、-nn 不解析名字 |
| 相关工具 | chrony 或 ntp 的查询命令 |
典型使用场景
- 确认时间同步服务是否真的在与服务器交互
- 排查跨机日志时间不一致,判断时钟是否漂移
- 验证出向策略是否放行同步流量
- 评估同步周期是否满足业务精度要求
- 定位同步失败是本地服务问题还是网络问题
常用示例
常用示例
tcpdump -i eth0 -nn -vv 'udp port 123' -c 10 # 抓同步流量并展开字段
tcpdump -i any -nn 'udp port 123 and host 203.0.113.9' -c 20 # 限定服务器
tcpdump -i eth0 -nn 'udp port 123' -c 50 -w /tmp/ntp.pcap # 落盘留档现象与处理
| 现象 | 含义 | 处理方向 |
|---|---|---|
| 只有请求没有响应 | 服务器不可达或被拦截 | 核对服务器地址与出向策略 |
| 请求响应周期正常 | 同步在进行 | 确认偏差是否收敛 |
| 响应间隔很长 | 同步周期配置较大 | 按业务精度要求调整 |
| 完全没有流量 | 同步服务未运行 | 检查服务状态 |
抓包时间戳来自抓包机自身时钟,跨机对比时间前先确认两台机器的时钟源是否一致。
同步失败会让时间戳整体偏移,基于时间做因果分析前先确认时钟可靠。
补充要点
- 把同步流量与同步服务的状态输出结合看,能区分网络问题与服务问题
- 多台服务器配置时逐台核对响应情况,避免只验证其中一台
- 时间偏差达到秒级时,日志关联分析会明显失真,需优先处理
- 把同步流量的抓包与日志一起归档,便于解释时间相关问题
虚拟化环境中宿主机时钟会影响虚机时间表现,排查时把宿主机一并纳入范围。