截图来自内置合成抓包,展示真实解析结果。
| 场景 | 功能 |
|---|---|
| 不确定该抓哪张网卡 | 每秒显示收发速率、连接状态与相对流量条,点击网卡名称选择 |
| 需要现场取证 | 本地网卡抓包、BPF 过滤、时长/大小限制,停止后自动分析 |
| 已有 Wireshark 抓包 | 拖入 PCAP、PCAPNG 或其他 TShark 支持的格式 |
| 排查重传、延迟或连接失败 | 21 类诊断规则,关联会话与具体报文 |
| 掌握流量构成与速率 | 各类包数量、每秒包数(PPS)、突发时间片与包类型下钻 |
| 处理大文件 | SQLite 磁盘索引、分页查询,默认单文件 10 GB,可配置 |
| 查看证据与分享结论 | 协议字段、原始十六进制、原始 PCAPNG 下载、JSON 报告 |
所有抓包和分析均在本机进行。程序只监听本机回环地址,运行时不依赖云端分析服务。
- 从 Releases 下载
PacketLens-0.2.4-Setup-x64.exe。 - 打开中文安装向导,选择安装位置和安装范围;完成后从桌面或开始菜单启动。
- 离线分析可直接使用;需要网卡抓包时,另行安装 Npcap。
安装包内置 Electron、Python、TShark 和 dumpcap,无需自行安装 Python、Node.js 或 Wireshark。当前提供 Windows x64 EXE 安装包,非 MSI;安装后直接从安装目录启动,不重复解压。发行包尚未进行数字签名。
原始抓包保存于 %LOCALAPPDATA%\PacketLens\captures,关闭程序和卸载均保留。安装包 SHA-256 校验文件与源码附件见同一 Release。
打开软件后点击 “打开诊断样例”,即可体验分析工作流,无需先抓取真实流量。
- 文件分析:拖入抓包 → 查看分析概览 → 点击诊断线索 → 下钻会话或报文。
- 网卡抓包:点击“网卡抓包” → 观察收发速率 → 选择网卡 → 设置 BPF 和限制 → 开始 → 停止并分析。
- 报文证据:按 IP、端口、协议、域名或关键词搜索,打开报文查看协议树和原始字节。
| 分类 | 线索 |
|---|---|
| TCP 连接与传输 | 重传、重复 ACK、乱序、捕获缺段、RST、未观察到完整握手 |
| 流量控制与延迟 | 零窗口、窗口满、ACK RTT 偏高、RTT P95、会话平均 RTT |
| 应用与名称解析 | DNS 错误/慢响应、可见 HTTP 4xx/5xx 与慢响应、可见 TLS 告警 |
| 网络层与探测 | ICMP/ICMPv6 错误、Packet Too Big、TCP 多端口 SYN 探测线索 |
| 流量速率与包类型 | 每秒报文数突增、ARP 占比异常、SYN 与 SYN-ACK 严重失衡、ICMP 流量占比异常、广播报文泛滥 |
规则命中是排查线索,不代表自动确认根因。当前不支持 TLS 解密、跨文件合并、边抓边逐包展示或 AI 根因判断。部分虚拟/回环网卡无法提供系统流量统计时会明确显示“统计不可用”,仍可抓包。
默认 10 GB 是允许导入的上限;实际耗时、内存和磁盘占用取决于协议与会话复杂度。完整阈值、空间要求、设置项和限制见 使用说明。
开发需要 Windows x64、Node.js ≥ 22.12、Python ≥ 3.10,以及 TShark(已验证 4.6.8)。使用 Python 3.14 可与当前打包环境保持一致。
git clone https://github.com/ez4cywa/PacketLens.git
cd PacketLens
npm ci
# 安装 7-Zip 后,下载并校验官方 Wireshark,再提取本地工具(不安装驱动)
powershell -NoProfile -File scripts/prepare_wireshark.ps1
npm start也可安装官方 Wireshark 并设置 TSHARK_PATH,用于源码模式。浏览器开发入口为 python server.py;桌面入口为 npm start。
python -m pip install pyinstaller==6.21.0
npm run build:win # Inno Setup EXE 安装包,输出到 dist/
# npm run build:nsis # 可选:electron-builder NSIS 安装包
# npm run build:portable # 可选:首次解压后缓存的单文件版
python -m unittest discover -s tests -v打包需要先将官方工具准备到 tools/wireshark,安装版另需 Inno Setup 6(ISCC.exe,可用 ISCC_PATH 指定路径)。本地已通过 34 项测试,包括真实回环采集;真实采集测试需安装 Npcap 并显式设置 PACKETLENS_TEST_LIVE=1。CI 不启用真实抓包测试。
本地大文件基准:1.17 GB、800,000 个合成 UDP 报文,完整分析与末页查询约 27 秒。这是单会话样例,不代表任意真实流量性能。详见 使用说明 与 启动性能记录。
analyzer.py / storage.py 协议诊断与 SQLite 磁盘索引
capture.py / nic_traffic.py 网卡采集与实时流量统计
server.py / desktop.cjs 本地 API 与 Electron 桌面入口
web/ 中文分析工作台
scripts/ Windows 构建、打包和验证
tests/ / samples/ 回归测试与合成抓包
欢迎提交 Issue 或 Pull Request。开发规范见 CONTRIBUTING.md。请优先使用合成或脱敏抓包复现问题。
PacketLens 自身源码采用 MIT。实际集成的 Wireshark/TShark、Electron、Apache ECharts 与 SQLite 保留各自许可证,见 第三方声明。Wireshark 对应版本源码随 Release 提供;Npcap 不随安装包分发。

