抓包是开发者日常调试最常用的手段之一。市面上工具不少,但每个工具的定位和适用场景差异很大,选对工具能省不少时间。
Charles 是 HTTP/HTTPS 抓包里用户量最大的工具。优势是上手简单——Mac 上装好、手机配代理、装证书,几分钟就能看到请求列表。支持 Breakpoint 拦截修改请求、Repeat 重放、Map Local/Remote 做请求映射。SSL Proxying 配置好域名后 HTTPS 也能解密。
Charles 的局限主要体现在几个场景:遇到 SSL Pinning 时代理证书会被客户端拒绝,只能看到握手失败的记录;不认系统代理的应用流量收不到;HTTP/3 和 QUIC 支持不足;在 Windows 上的证书配置流程比 Mac 复杂一些。
Fiddler 在 Windows 上使用广泛,核心优势是 FiddlerScript——用 C# 写脚本自定义请求和响应处理,适合自动化测试场景。支持断点调试和请求构造。内置了性能分析面板,可以看到请求耗时和带宽占用。
Fiddler 的短板也很明显:macOS 只有功能有限的 Beta 版,主力还是 Windows;HTTPS 解密需要手动配证书,步骤比 Charles 多;界面偏旧,数据量大时筛选不够顺手。
TraceEagle 和前面几款工具的思路不同。它在代理抓包的基础上补了其它工具的盲区:不认系统代理的应用可以通过网卡直抓或应用内取流捕获;SSL Pinning 场景不需要在中间换证书,直接从应用内部取明文;HTTP/3 和 QUIC 支持降级抓取、保真透传和真正解密三种方式。
流量抓到之后的链路也更完整——同一界面打断点改请求、右键压测看 p99 尾延迟、逐行对比差异、反推 OpenAPI 文档。支持 iOS 免越狱、Android 免装证书抓包,在 Windows、macOS、Linux 上都能运行。
Wireshark 在协议分析的深度上没有对手,支持上千种协议解析。过滤器表达式强大,可以组合源 IP、端口、协议等条件定位特定流量。排查 TCP 重传、TLS 握手细节时是标准工具。
Wireshark 抓移动端 iOS 流量需要 Mac 上的 rvictl 命令创建虚拟接口,Windows 上没法直接用。而且 Wireshark 不负责 HTTPS 解密——需要另外导密钥。日常接口调试层面,Wireshark 的操作链路比代理工具长。
Proxyman 是最近几年 macOS 上比较流行的抓包工具。界面比 Charles 和 Fiddler 现代,请求筛选和过滤规则的可视化配置更直观。支持按域名分组、高级搜索、脚本扩展。SSL Pinning 场景下可以通过安装根证书配合 iOS 的 SSL Kill Switch 解决。
Proxyman 的局限在于只支持 macOS,Windows 用户用不了。HTTP/3 的支持也有限。深度分析能力和脚本灵活性不如 Fiddler。
日常调试简单的 HTTP 接口,Charles 或 Proxyman 够用。Windows 环境且需要脚本能力的场景选 Fiddler。深挖 TCP 协议层必须用 Wireshark。项目里碰到证书绑定、HTTP/3、私有协议这些边界场景时,工具链里加一个 TraceEagle 补齐盲区。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70047459/viewspace-3175772/ ,如需转载,请注明出处,否则将追究法律责任。