免费开源|我写了一个NTP时间同步诊断工具,帮你一键找出局域网里“时间不准”的设备

免费开源|我写了一个NTP时间同步诊断工具,帮你快速找出局域网里“时间不准”的设备

诊断报告界面.png  

运维最头疼的事之一:数据库偶尔慢查询、日志时间对不上、分布式事务莫名其妙失败……排查半天,最后发现是几台服务器的时间慢了3秒

 

为什么时间同步这么重要却没人管?

 

时间同步是一个“沉默的杀手”。它不会像服务器宕机那样立刻报警,而是像慢性病一样,在你的系统里埋下各种奇怪的BUG:

 

  • 数据库主从切换时,时间偏差导致 binlog 乱序

  • 分布式存储节点之间时间不一致,写入冲突

  • 安全审计日志时间戳错乱,等保合规直接挂掉

  • 金融交易系统的时间偏差,可能造成资损

 

更可怕的是,大部分运维根本不知道自己的网络里有哪些设备的时间是错的。

 

传统方式有多麻烦?

 

通常排查时间同步问题需要:

 

  1. SSH 登录每一台服务器

  2. 执行 ntpq -pchronyc sources 查看同步状态

  3. 人工计算 offset 和 delay

  4. 手动整理成表格给领导汇报

 

几十台设备还好,如果是几百台呢?如果有些设备根本不是 Linux,而是交换机、防火墙、摄像头呢?

 

更别提 PTP(精确时间协议)了,大部分运维连 PTP 报文长什么样都没见过。

 

我写了一个免费工具来解决这个问题

 

这个工具叫 “网络时间同步诊断工具”,目前是 v2.2.7 版本,完全免费,代码已开源。

 

它的核心功能就三个:

 

1. NTP 主动扫描 — 一键找出子网内所有 NTP 节点

 

输入一个 IP 段(比如 192.168.1.0/24),工具会向每个 IP 发送 NTP 请求,并解析响应报文,然后告诉你:

 

  • 哪些设备在提供或使用 NTP 服务?

  • 每台设备的 Stratum 层级是多少?

  • 时间偏差(offset)是多少毫秒?

  • 网络延迟(delay)是多少?

  • 它们的上游参考源是什么?(是公网 NTP、还是本地的 GPS/北斗时钟?)

 

最重要的是,它会生成一份带颜色的 HTML 报告

 

| 颜色 | 含义 |

|------|------|

| �� 绿色 | 偏差 < 10ms,精度良好 |

| �� 蓝色 | 偏差 10~50ms,一般 |

| �� 黄色 | 偏差 > 50ms 或延迟 > 200ms,需要关注 |

| �� 红色 | 无法连接 NTP,完全失控 |

 

报告里还有白话诊断,比如“发现 3 台设备时间偏差超过 100 毫秒,可能已影响分布式事务和日志准确性”。运维拿着这份报告,可以直接去找领导申请采购专业授时设备。

 

2. NTP 被动监听 — 零干扰,静默分析时间同步流量

 

主动扫描需要发送请求包,有些客户担心触发安全告警。所以我还加了一个被动监听模式

 

  • 把电脑接入交换机的镜像端口

  • 选择网卡,点击“开始监听”

  • 工具会静默抓取所有 NTP 流量(UDP 123 端口)

  • 实时显示谁在和谁同步,自动标注风险(公网依赖、层级过高等)

 

零发包,零干扰,完全不影响业务。

 

3. PTP 被动监听 — 数据中心和金融行业的刚需

 

PTP(IEEE 1588)在金融交易、电信 RAN、工业控制等领域大量使用,但市面上几乎没有免费的 PTP 诊断工具。

 

这个工具可以在镜像端口上抓取 PTP 报文,解析出:

 

  • Grandmaster 的 Clock Identity

  • 时钟等级(clockClass)和精度(clockAccuracy)

  • Announce 报文的优先级和步数(stepsRemoved)

  • 是否存在多主冲突

 

对数据中心运维来说,这功能简直是降维打击。

 

技术栈

 

  • Python 3.7+

  • GUI:Tkinter + ttkbootstrap(深色主题,颜值在线)

  • 抓包:Scapy

  • 打包:PyInstaller(生成单文件 exe,无需 Python 环境)

 

代码已经开源在 Gitee:

 

�� [gitee.com/beijing-hon…)

 

下载地址

 

Windows 用户:从 Releases 页面 下载 NTP时间诊断工具.zip,解压后双击运行即可。  

被动监听功能需要安装 Npcap,NTP 主动扫描不需要。

 

Linux/macOS 用户:直接运行 Python 源码,需要 root 权限才能使用监听功能。

 


git clone https://gitee.com/beijing-hongxie-development/ntp-time-scanner.git

cd ntp-time-scanner

pip install scapy ttkbootstrap

python TimeMonitor.py

 

写在最后

 

这个工具是我利用业余时间开发的,前前后后迭代了二十几个版本,修复了无数 BUG(特别感谢 AI 在代码审查上的帮助)。

 

如果你觉得它有用,欢迎 Star、Fork、提 Issue。

 

如果你扫描完发现自己的网络里有一堆红色和黄色的设备,也别慌,你可以:

 

  1. 先把报告存下来,作为向领导汇报的依据

  2. 检查那些红色设备的网络连通性和 NTP 配置

  3. 考虑部署一台专业的 NTP 服务器作为本地时间基准

 

如果你需要硬件方案,欢迎访问 **www.hongxiekeji.com**,或者直接拨打技术支持热线:**400-009-2287**。

 

标签Python 运维 NTP 网络协议 开源 工具推荐 网络安全