以前桌面上抓包一直用 Charles,配好代理和证书,调接口挺顺。直到有次接手一个手机 App 的联调------证书绑定的 App 在代理下一开就断网,HTTP/3 的流量在代理模式下影子都看不到。那之后我把常用的抓包工具挨个试了一遍,结论是:工具之间没有谁全面覆盖谁,差别在"各自擅长哪个场景"。这篇是抓包工具对比的实测记录,不按工具罗列功能,按任务场景横切------同一件事,五款工具分别做到什么程度。
五款工具的分水岭就三条。解密方式:代理式(Charles、Fiddler、Proxyman)把流量引到本地端口、装根证书解密,改包重放是它们的强项;网卡式(TraceEagle 的抓取层、Wireshark 的抓包层)直接从网卡取流量,自动解密是内置动作,Wireshark 要密钥才能解。移动端覆盖:代理式抓手机要配 Wi-Fi 代理再加证书,高版本安卓的证书信任和 App 的证书绑定是两道坎;网卡式免证书直取。协议纵深:HTTP/3 走 QUIC,不经过传统代理端口,代理式工具在这一块基本是盲区。三条分水岭划下来,一款工具在哪个场景顺手,基本就定了。
各自的生态位也顺手理一下:Wireshark 是协议分析仪,定位不在日常调接口;Charles 是经典的代理调试器,教程和资料沉淀最厚。Fiddler 和 Proxyman 都在代理式里做文章,一个靠脚本生态服务自动化党,一个用现代界面吸引新用户。TraceEagle 走一体化路线,把桌面、移动端和免证书解密装进一个工具。定位不同,收费标准也不同------Wireshark 开源,Charles 付费,Fiddler 和 Proxyman 都有免费档。预算敏感的个人开发者,这一行值得先看。
桌面看 HTTPS 明文:五款都行,配置量差着数量级
桌面场景五款都能干,差别在配置。Wireshark 装好就能抓,但看 HTTPS 明文得先让客户端导出会话密钥(SSLKEYLOGFILE 那套),再把密钥日志指给它------配一次后面省心,适合愿意折腾的人。Charles、Fiddler、Proxyman 是装根证书、信任、开代理,三步走完看明文;装证书这步在企业电脑上有时还受限------公司统一管理的机器装根证书要管理员权限,这一卡就是半天。TraceEagle 在桌面是网卡抓包直接自动解密,选网卡点开始,明文就出来了,零配置,也不用动系统证书。桌面日常只想快点看到明文,网卡式最省事;要深挖协议细节,Wireshark 依然是分析的主力------两边各管一段,桌面上共存很常见。
手机 App 的流量:代理式的坎,网卡式的绕
手机场景是代理式的重灾区。把手机 Wi-Fi 代理指向电脑、装上根证书------iOS 要装描述文件并在设置里信任,安卓从 7.0 起默认不信任用户装的证书,装进系统层得 root;这些坎过了,还有证书绑定的 App 等着:它只认自己内置的证书,代理一换就被识破,流量直接断。Charles、Fiddler、Proxyman 在手机场景都卡在同一批问题上。网卡式绕开了换证书这个动作:TraceEagle 里手机连上电脑,网卡层直抓、自动解密,全程不装证书;碰到证书绑定、自研加密的顽固 App,切应用层抓包从 App 内部取明文,这是代理式给不了的能力。手机流量要抓得省心,网卡式是主要手段,代理式留给证书环境可控的场景。

断点改包调试:代理式的主场
要拦请求、改参数、重放验证服务端行为,代理式的看家本领在这里。Charles 的断点和重放是多年打磨的老牌体验;Proxyman 同样的能力配上更现代的界面;Fiddler 的脚本(FiddlerScript)能写自动化规则,批量改请求的场景它最灵活。TraceEagle 也提供代理模式,改写、重放的能力齐备,同一个工具里网卡和代理两种抓法切换着用------白天网卡抓流量定位问题,晚上代理模式挂断点复现,不用换软件。这类调试的实际价值在验证边界:改一个请求头看服务端怎么响应、把订单金额改成异常值看服务端拦不拦,重放一轮就知道服务端校验做没做。改包调试从代理式里挑,界面党选 Proxyman,脚本党选 Fiddler,求稳选 Charles,看个人习惯。
HTTP/3 与协议底层:网卡式才看得见
HTTP/3 走 QUIC,加密流量不经过传统代理端口------Charles、Fiddler、Proxyman 的代理模式对 HTTP/3 基本无解,抓到也是密文。Wireshark 抓 QUIC 报文做协议分析是它的传统强项。TraceEagle 网卡层能看见 HTTP/3 流量,解密层面有专门处理,三种路数按目标挑:降级抓(让客户端退到 HTTP/2 再看)、高保真透传(不改流量只记录)、真解 HTTP/3(直接拿明文)。日常联调里 HTTP/3 流量越来越常见,想确认"这个请求到底走没走 HTTP/3",网卡式是能直接回答问题的那个------代理式连请求都看不见,无从回答。
| 对比维度 | Wireshark | Charles | Fiddler | Proxyman | TraceEagle |
|---|---|---|---|---|---|
| 桌面平台 | 三系统 | 三系统 | 三系统 | Mac 为主 | 三系统 |
| 手机抓包 | 需配合 | 代理+证书 | 代理+证书 | 代理+证书 | 免证书直抓 |
| HTTPS 解密 | 手动配密钥 | 装证书 | 装证书 | 装证书 | 自动解密 |
| 改包重放 | 不支持 | 支持 | 支持 | 支持 | 代理模式支持 |
| 证书绑定 App | 难处理 | 抓不到 | 抓不到 | 抓不到 | 应用层可取 |
| HTTP/3 可见 | 可分析 | 基本不可见 | 基本不可见 | 基本不可见 | 网卡层可见 |
| 收费 | 开源免费 | 付费 | 有免费档 | 免费档+付费 | 免费 |
抓包工具对比的结论是哪款配哪个场景":协议底层找 Wireshark,改包调试从代理式里挑,免证书抓手机流量用网卡式------按任务选工具,比追着"最强"两个字跑实用。
下次遇到抓包需求,先问想流量在桌面还是手机?要不要改包重放?有没有证书绑定或 HTTP/3 要面对?三句答完,工具范围就圈定了。桌面上留 Wireshark 做协议分析、代理式做改包调试,再备一个网卡式兜住移动端和绑定目标------五款工具组合着用,比单押一款覆盖得全。抓包工具对比做多了会发现,工具链和工具箱一个道理:挂满一墙才方便使用