在日常开发和测试中,Fiddler 一直是 Windows 平台下最常用的抓包工具。无论是 Web 调试还是移动端接口排查,Fiddler 都有相当多的用户基础。
然而,许多开发者在配置 iOS 抓包时,会遇到一个常见问题:明明设置了代理,Fiddler 却抓不到包,或者只能看到 CONNECT 请求。
如果你也遇到过类似情况,不妨跟随这篇文章,一起看看可能的原因与解决方案。
一、为什么 Fiddler 会抓不到包?
- 网络代理未配置正确
- 手机和电脑必须在同一局域网下
- iPhone Wi-Fi 的 HTTP 代理需要设置为电脑 IP 和 Fiddler 监听端口(默认 8888)
- 如果 IP 填写错误,流量就无法进入 Fiddler
- HTTPS 解密未开启
- 默认情况下,Fiddler 并不会解密 HTTPS 流量
- 需要手动勾选 “Decrypt HTTPS traffic”,并为目标域名启用解密
- 证书未被信任
- 在 iOS 上,即使安装了证书,也需要在 “设置 → 通用 → 关于本机 → 证书信任设置” 中手动打开信任
- 否则 HTTPS 请求仍然无法解密
- 应用启用了 SSL Pinning
- 越来越多的 App 出于安全考虑,会启用 SSL Pinning 或双向认证
- 一旦检测到证书被替换,通信会直接失败
- 系统或软件冲突
- 防火墙阻止 Fiddler 的监听端口
- 电脑上同时运行了其他代理软件,端口被占用
二、常见排查方法
- 验证代理是否正常
- 在 Safari 中访问一个 HTTP 网站,看 Fiddler 是否能显示请求
- 如果没有流量,说明代理未生效
- 检查 HTTPS 解密
- 打开
Tools → Options → HTTPS
,勾选 “Decrypt HTTPS traffic” - 添加目标域名,或用
*
匹配所有
- 打开
- 确认证书信任
- iOS 系统必须手动打开证书信任
- 这是很多开发者常常忽略的细节
- 判断是否遇到 SSL Pinning
- 如果只有特定 App 抓不到包,且 HTTPS 握手失败,基本可以确认是 SSL Pinning
三、当 Fiddler 无法突破时的替代方案
在调试某些带有高安全防护的 App 时,即便配置完全正确,Fiddler 依旧无法获取有效数据。我会使用 Sniffmaster(抓包大师) 来进行补充:
- USB 直连 iOS,无需设置 Wi-Fi 代理
- 无需越狱或 Root,即插即用
- 自动解密 HTTPS,可破解双向 SSL 验证
- 仅抓取目标 App,避免无关请求干扰
- 支持拦截器,可以用 JavaScript 修改请求与响应
- 导出 PCAP 文件,结合 Wireshark 进行底层分析
四、不同工具的适用场景
工具 | 优势场景 | 劣势 |
---|---|---|
Fiddler | Windows 环境下 Web 调试、普通接口测试 | 无法绕过 SSL Pinning |
Charles | 跨平台、界面友好,适合快速调试 | 在复杂加密场景下受限 |
mitmproxy | 可脚本化、自动化测试能力强 | 学习成本高,界面不直观 |
Sniffmaster | iOS 高安全场景,直连解密 HTTPS | 需额外设备连接 |
五、实战经验总结
- 大多数情况下,代理和证书配置错误是罪魁祸首,要先逐一排查
- 一旦遇到 SSL Pinning,就不要死磕 Fiddler,传统代理型工具无能为力
- 直连型工具是必要补充,Sniffmaster 能很好地解决这种问题
- 多工具协作 才能覆盖从接口调试到协议分析的完整链路
Fiddler 在常规接口调试中依旧非常高效,但在 iOS 环境中经常会遇到抓不到包的情况。
解决问题的思路应该是:先排查代理和证书 → 再确认解密配置 → 最后识别是否为 SSL Pinning。
当确认是应用安全机制导致时,切换到 Sniffmaster 这样的直连工具,往往能快速突破限制,让调试顺利进行。
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦