phreakocious/tcptrace-ng

GitHub: phreakocious/tcptrace-ng

tcptrace-ng是一款用于TCP流量分析的本地Web UI工具。

Stars: 0 | Forks: 0

# tcptrace-ng 本地 web UI 用于 [tcptrace](https://github.com/blitz/tcptrace) pcap 分析,带有交互式浏览器图表。 ![tcptrace-ng UI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/c7780572db025135.png) ## 快速入门 ``` # 1. 获取 tcptrace 二进制文件 — 选择一个: git clone --recurse-submodules && cd tcptrace-ng && make vendor-tcptrace # 或:brew install tcptrace # macOS # 或:apt install tcptrace # Debian/Ubuntu # 2. 安装 tcptrace-ng pip install -e ".[dev]" # 或:uv pip install -e ".[dev]" # 3. 在 pcaps 目录中运行它 cd /path/with/pcaps tcptrace-ng ``` 浏览器打开到本地 NiceGUI 页面,布局为顶部栏 + 侧边栏 + 主面板。在标题栏中选择一个 pcap;侧边栏将填充该 pcap 的连接(可筛选)。点击任何连接即可立即分析它。主面板显示: - 每个生成的 `.xpl` 图表(时间序列、吞吐量、RTT、owin、ssize)都有一个标签页,以交互式 Plotly 图表的形式渲染,支持平移/缩放。 - **tcptrace 输出** 按钮(右上角)在模态中打开原始彩色分析(绿色 = 良好,黄色 = 有趣,红色 = 差)。 - 标题栏中的复选框切换常见的 tcptrace 标志 — **DNS**(默认关闭,选择加入 → 添加 `-n` 以跳过主机名/端口号解析),**RTT**(`-r`),**警告**(`-w`),**校验和**(`--checksum --warn_printbadcsum` 以验证并显示错误的 IP/TCP 校验和 — 对于捕获 NIC 负载的碎片很有用),**0 轴**(`-zx`)。切换会重新运行分析并清除该标志组合的缓存。 - 当预检查扫描标志条件导致分析结果失真时,标题栏中会出现一个 `⚠ N 警告` 磁贴。目前检测到 NIC 负载(LSO/GSO/TSO/LRO/GRO) — 当捕获显示大于 1500 B 的 TCP 段时,捕获的 MSS、时间序列阶梯和重传检测都是不可靠的。点击查看完整文本。 ### 隧道解封装 tcptrace 不了解现代覆盖封装,因此任何封装在 **Geneve**(UDP/6081)、**VXLAN**(UDP/4789)或 **GRE**(IP 协议 47)中的流量对它来说是不可见的。tcptrace-ng 在前 ~200 帧;如果存在,它会重新编写一次 pcap(剥离外部标题)并将解封装的副本传递给 tcptrace。解封装的 pcap 存储在 `.tcptrace//decap.pcap`。当运行解封装过程时,标题会显示 `decap: geneve`(或 `vxlan+gre` 等)。 裸 IP 内部(常见于 GRE)会获得一个合成的以太网标题,以便输出保持 DLT_EN10MB。IPv6 扩展标题(HBH/路由/目标/分片)已经由 tcptrace 的 `ipv6.c` 本地处理。 点击另一个连接以切换视图 --- 已分析的连接会从缓存中立即渲染。侧边栏页脚有一个“↓ xpl zip”按钮,可以将您在此会话中分析的每个连接捆绑在一起,以防您仍然想使用桌面 `xplot`/`jplot` 查看。 ## 缓存 每个 pcap 的缓存都位于 `.tcptrace//` 中,紧邻每个 pcap。标题显示总缓存大小。**清除缓存** 会清除一切;**重新分析** 只会清除当前 pcap 的缓存。 将 `.tcptrace/` 添加到您的 `.gitignore`。 ## CLI 选项 ``` tcptrace-ng [DIR] --port PORT bind port (default: pick free) --no-browser don't auto-open browser --timeout SECONDS per-subprocess timeout (default: 60) --debug verbose logs -V, --version ``` ## 引入的 tcptrace 上游 tcptrace ([tcptrace.org](http://tcptrace.org)) 自 2006 年以来没有更新;其 TLS 证书已过期,源代码不再在现代工具链上构建。[github.com/blitz/tcptrace](https://github.com/blitz/tcptrace) 是实际的标准源 — 这是 FreeBSD 端口和 Homebrew 公式跟踪的源。tcptrace-ng 在 `vendor/tcptrace`(子模块 → [phreakocious/tcptrace](https://github.com/phreakocious/tcptrace)) 中引入了该分支,并为现代 macOS/Linux 工具链添加了两个构建修复: - `mod_traffic.c`:静音了 `-Wreturn-type` 现在失败的未使用返回值警告。 - `tcpdump.c`:用 `pcap_dispatch()` 替换了私有的 `pcap_offline_read()`(已在现代 libpcap 中删除) — [msagarpatel 的 2021 年 Ubuntu 修复](https://github.com/blitz/tcptrace/pull/9)。 ``` git submodule update --init # if you didn't clone with --recurse-submodules make vendor-tcptrace # configure + build → vendor/tcptrace/tcptrace ``` 运行器按以下顺序解析二进制文件:`$TCPTRACE_BIN`(如果设置)→ `vendor/tcptrace/tcptrace`(如果构建)→ `$PATH` 上的第一个 `tcptrace`。已安装的 wheels 跳过引入的副本,并回退到 `$PATH`。 ## 开发 ``` uv venv && source .venv/bin/activate uv pip install -e ".[dev]" pytest -q # unit tests ruff check src tests # lint ruff format src tests # format ``` ## 可选依赖项 对于非 pcap 捕获(例如,来自旧工具的 `.cap`),安装 Wireshark CLI 工具(`capinfos`、`editcap`)。tcptrace-ng 将自动作为后备运行它们。
标签:Debian/Ubuntu, DEF CON 演示, Geneve, GRE, Linux系统, Pcap分析, pip安装, Plotly, Python开发, TCP/IP协议, tcptrace, TCP流量分析, VXLAN, Web界面, 交互式图表, 日志审计, 系统分析, 网络分析, 网络安全, 网络封装, 网络性能优化, 网络性能分析, 网络性能测试, 网络性能监控, 网络性能监控工具, 网络性能监控平台, 网络性能监控解决方案, 网络性能监控软件, 网络性能管理, 网络性能评估, 网络故障排查, 网络数据可视化, 网络流量统计, 网络诊断工具, 网络调试, 自动化, 逆向工具, 隐私保护