Fiddler 抓不到包怎么办?代理是否生效、HTTPS 解密状态、iOS App 通信

本文通过一次完整的抓包排查过程,围绕「Fiddler 抓不到包怎么办」这一问题,从代理是否生效、HTTPS 解密状态、iOS App 通信路径等具体现象出发,结合 Fiddler、Wireshark 与抓包大师(Sniff Master)等工具的实际行为,展示在不同抓包场景下如何选择合适的工具与抓包方式,帮助读者减少无效配置与重复试错。

在调试接口时,我第一次发现 Fiddler抓不到包这个问题,并不是在 iOS App 上,而是在一台 Windows 电脑上。

Fiddler 已经启动,左下角显示 Capturing,但请求列表始终是空的。这个状态代表着当前流量没有进入 Fiddler 的代理通道。


从最简单的流量开始验证

我做的第一件事是打开浏览器,访问一个普通的 HTTP 网站。

  • 页面可以正常加载
  • Fiddler 列表仍然没有任何请求

这一步的结果可以告诉我们系统代理并没有被 Fiddler 接管。

在这种状态下,继续配置 HTTPS 证书不会改变抓包结果,因为流量根本没有经过 Fiddler。


代理路线被谁占用了

接下来检查的是系统环境本身:

  • 是否存在 VPN
  • 是否启动过 Clash、Surge、v2rayN
  • 是否有开发工具修改过全局代理

在关闭这些程序后,重新启动 Fiddler,并以管理员权限运行,再次访问 HTTP 网站,请求开始出现在列表中。

到这里,Fiddler 的基本工作路径已经成立。


HTTPS 能看到域名,但没有内容

代理恢复后,HTTPS 请求开始出现,但点开后只有 CONNECT,或者只显示域名,没有请求体。

这时进入证书相关的排查阶段:

  • Fiddler 是否成功生成 Root 证书
  • 证书是否被系统标记为“受信任”
  • 浏览器是否使用系统证书存储

在 Windows 上,可以直接在证书管理器中确认证书状态,而不是反复点击 Fiddler 的“Install Certificate”。


当目标从 Web 变成 iOS App

将同样的 Fiddler 用在 iPhone 上时,问题出现了变化。

  • Safari 访问 HTTPS 网站可以被完整抓取
  • iOS App 完全没有任何请求

这两个现象同时存在,说明:

  • Wi-Fi 代理设置是生效的
  • 证书链路是可用的
  • App 的网络请求并未走系统代理

继续在 Fiddler 上调整设置,并不会让 App 的请求突然出现。


切换工具验证通信是否真实存在

为了确认 App 是否真的在发起请求,我改用 Wireshark 抓取同一时间段的 TCP 流量。

在 Wireshark 中可以看到:

  • DNS 查询
  • TCP 建连
  • TLS ClientHello

说明 App 的网络通信确实存在,只是绕过了代理。


在 iOS 设备上抓包

这个阶段,代理型工具已经无法覆盖需求,于是我改用 抓包大师(Sniff Master) 直接对 iOS 设备进行抓包。

设备通过 USB 连接电脑,在抓包大师中选择对应的 iOS 设备后,可以直接进行 HTTPS 抓包,而不需要在手机上配置代理或手动安装证书。

在这种模式下,请求数据开始完整出现,包括请求体和响应内容。


多工具并行,而不是互相替代

最终这次排查中,各个工具承担的角色非常清晰:

  • Fiddler:验证代理是否生效、调试 Web 请求
  • Wireshark:确认底层网络通信是否真实发生
  • 抓包大师(Sniff Master):处理 iOS App 不走代理的通信场景