Pcapng 格式优势 — TLS 密钥嵌入文件,Wireshark 打开即用
为什么需要 Pcapng
传统 .pcap 格式(pcap 文件格式 / libpcap)有几个天生缺陷:
- 只能存单向包,无法标记流量方向
- TLS 密钥不能嵌入,必须单独生成 .keylog 文件手动配到 Wireshark
- 不支持存应用级元数据(UID、包名)
- 无法扩展,想加字段只能 hack 二进制格式
Pcapng(PCAP Next Generation)是 IETF 标准化的现代替代格式,用模块化块结构:Enhanced Packet Block(数据包)、Interface Description Block(接口描述)、Custom Block(自定义扩展)等,每个块带独立头部,易扩展。
PCAPdroid 使用 Pcapng 解决了什么
在 PCAPdroid 里,Pcapng 格式带来两个实际好处:
好处一:TLS 密钥嵌入
启用 Pcapng + TLS 解密 + PCAP 文件 dump mode 后:
- 停止抓包时只生成一个 .pcapng 文件
- TLS 主密钥以 pcapng Decryption Secrets Block 的形式嵌入文件内部
- Wireshark 打开 pcapng 时自动识别并加载密钥,直接显示解密后的明文 HTTP 流量
- 不需要手动配 Edit → Preferences → Protocols → TLS → SSLKEYLOGFILE 路径
这是日常使用中最能"感受"到的差异——少掉一次配置步骤,不容易忘记。
好处二:流量方向保留
Root 模式抓包时,传统 PCAP 格式可能丢失流量方向(哪端发起、哪端响应)。Pcapng 的 Enhanced Packet Block 有专门的 Direction 字段,完整保留 Root 模式的抓包方向信息。
好处三:应用元数据保留
配合 PCAPdroid extensions,Pcapng 用自定义块(PEN 62652)存储应用 UID 和包名,比 PCAP 模式下模拟 Ethernet 头的方式更干净、节省空间。
启用方式
- 确认已购买 Pcapng 功能
- PCAPdroid 设置 → Paid Features → Pcapng format 开关打开
- 之后所有 PCAP 文件 dump mode 输出都是 .pcapng 文件(不再是 .pcap)
<img src="images/pcapng-format.jpg" alt="Pcapng 格式启用" title="在设置里开启 Pcapng 格式" />
免费版还能用吗
付费 Pcapng 功能只是让 PCAPdroid 把抓包保存成 Pcapng 格式。免费版用户也可以:
- 继续用默认 .pcap 格式 + 手动配 SSLKEYLOGFILE 解密
- 用 PCAPdroid extensions 嵌入元数据(免费版也支持 extensions,只是嵌入方式是模拟 Ethernet 头,不如 Pcapng 干净)
- 把免费版 .pcap 文件导入 Wireshark 后手动导出为 Pcapng(Wireshark 菜单 File → Export Specified Packets → 格式选 pcapng),也能获得方向和扩展块支持
什么时候值得买
| 场景 | 建议 |
|---|---|
| 经常在电脑上用 Wireshark 分析 TLS 解密后的 PCAP | ✅ 值得,省事 |
| 已经有 PCAPdroid 付费全家桶 | ✅ 顺便一起开 |
| 只用 HTTP Server / TCP Exporter 实时看,不落盘 | ❌ 暂时不需要 |
| 偶尔 PCAP 落盘分析 | ⚠️ 免费版 + 手动 keylog 够用 |