免费开源|我写了一个NTP时间同步诊断工具,帮你快速找出局域网里“时间不准”的设备
运维最头疼的事之一:数据库偶尔慢查询、日志时间对不上、分布式事务莫名其妙失败……排查半天,最后发现是几台服务器的时间慢了3秒。
为什么时间同步这么重要却没人管?
时间同步是一个“沉默的杀手”。它不会像服务器宕机那样立刻报警,而是像慢性病一样,在你的系统里埋下各种奇怪的BUG:
-
数据库主从切换时,时间偏差导致 binlog 乱序
-
分布式存储节点之间时间不一致,写入冲突
-
安全审计日志时间戳错乱,等保合规直接挂掉
-
金融交易系统的时间偏差,可能造成资损
更可怕的是,大部分运维根本不知道自己的网络里有哪些设备的时间是错的。
传统方式有多麻烦?
通常排查时间同步问题需要:
-
SSH 登录每一台服务器
-
执行
ntpq -p或chronyc sources查看同步状态 -
人工计算 offset 和 delay
-
手动整理成表格给领导汇报
几十台设备还好,如果是几百台呢?如果有些设备根本不是 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:
下载地址
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。
如果你扫描完发现自己的网络里有一堆红色和黄色的设备,也别慌,你可以:
-
先把报告存下来,作为向领导汇报的依据
-
检查那些红色设备的网络连通性和 NTP 配置
-
考虑部署一台专业的 NTP 服务器作为本地时间基准
如果你需要硬件方案,欢迎访问 **www.hongxiekeji.com**,或者直接拨打技术支持热线:**400-009-2287**。
标签:Python 运维 NTP 网络协议 开源 工具推荐 网络安全