在移动端或 Web 调试场景中,Fiddler 是许多人最熟悉的抓包工具:简单、直观、适合分析 HTTP/HTTPS,也适合修改请求和响应。但不少开发者在使用时会遇到一个最头疼的问题:

Fiddler 完全抓不到包,HTTPS 也没有,界面干干净净。

无论是 iOS、Android 还是桌面端,只要环境稍微复杂一点,Fiddler 就可能出现抓不到包的情况。
但这并不是工具本身的问题,而是多个网络层、证书链、协议差异和 App 安全策略共同作用的结果。

本文从工程角度拆解 “Fiddler 抓不到包怎么办?” 的排查路径,覆盖 HTTPS 调试、证书校验、QUIC/HTTP3、网络代理冲突、自定义协议等场景


一、为什么 Fiddler 会抓不到包?(五大典型根因)

HTTPS 证书链未被信任

表现:

  • 只能看到 CONNECT
  • 无明文 HTTPS 内容
  • 部分接口报 TLS 错误

常见原因:

  • 证书没有在系统中完全信任
  • Wi-Fi 网关替换了证书
  • 中间证书链不完整

App 启用了证书 Pinning(最高频原因)

特征:

  • 浏览器能抓
  • App 抓不到
  • Fiddler 面板无任何请求

Pinning 直接拒绝代理证书,Fiddler 自然抓不到。


流量使用 QUIC(HTTP/3),绕过代理

QUIC 是基于 UDP 的传输协议,而 Fiddler 只代理 TCP。

症状:

  • 部分请求无法抓到
  • 切换 4G/5G 后可以抓
  • 视频/直播/社交类接口更常见

应用使用自定义 TCP 协议或独立网络栈

例如:

  • 游戏协议
  • WebSocket
  • SDK 自定义二进制协议

这类协议根本不会走系统代理。


系统代理失效或被覆盖

例如:

  • VPN
  • 企业 Wi-Fi 强制代理
  • 系统代理设置被安全软件修改

此时 Fiddler 的设置自然不会生效。


二、Fiddler 抓不到包时的排查流程(可直接复制到团队 Wiki)


步骤 ①:检查代理与证书设置

确认:

  • Fiddler 已启用 HTTPS 解密
  • 系统代理设置与 Fiddler 端口一致
  • 证书已安装并“完全信任”
  • 未启用 VPN 或其他代理

如果 HTTPS 一条都看不到 → 继续排查。


步骤 ②:判断是否为证书 Pinning

判断方法:

  • 浏览器能抓到
  • App 抓不到
  • Fiddler 无任何流量

这是 80% 的失败原因。

此时继续尝试代理工具毫无意义。


步骤 ③:检查是否为 QUIC / HTTP3 流量

验证方式:

  • 关闭 QUIC
  • 换网络
  • 查看是否走 UDP

QUIC 天生绕过代理 → 无法抓包。


步骤 ④:确认是否为自定义协议

表现:

  • Fiddler 只能抓到 CONNECT
  • 后端收到的是自定义二进制流
  • 没有任何 HTTP 请求

这是代理抓包永远无法覆盖的场景。


步骤 ⑤:代理无法生效 → 使用底层抓包工具补抓

这一步是解决 Fiddler 抓不到包最关键的环节。

补抓工具中比较常用的是:


抓包大师(Sniffmaster):非代理式抓包的补充能力

Sniffmaster 的实际工程用途:

  • 抓取 HTTPS / HTTP / TCP / UDP 数据流
  • 支持按 App / 域名 过滤流量
  • 自动识别 HTTP、HTTPS、mdns、自定义协议
  • 可查看 TCP 数据流(HEX / 文本 / 二进制)
  • 提供 JavaScript 拦截器,可改写请求和响应
  • 可导出 Wireshark 可读取的 pcap 文件
  • 跨平台运行(macOS / Windows / iOS)

适用于:

  • Pinning 阻止代理抓包
  • QUIC / HTTP3(UDP)流量
  • 自定义 TCP 协议
  • 系统代理被覆盖
  • 抓不到 HTTPS 的疑难问题

它的定位不是取代 Fiddler,而是补足代理抓包的技术盲区。


三、实际案例:Fiddler 完全抓不到 HTTPS,如何解决?

场景:

  • Fiddler 只能看到 CONNECT
  • Safari 能抓到
  • App 完全抓不到包

排查与解决:

  1. 核对证书与代理 → 无误
  2. 浏览器正常 → 系统代理生效
  3. App 无流量 → 高度疑似 pinning
  4. 使用 Sniffmaster 捕获底层 TCP/TLS 流量
  5. 在 Wireshark 中看到 TLS Alert
  6. 服务端 tcpdump 无对应请求
  7. 最终确认:App 内使用证书指纹校验 → 阻断代理

通过补抓确认了根因,问题得以解决。


解决 “Fiddler 抓不到包” 可以使用多工具组合抓包

唯一正确的解决方案不是换工具,而是“工具组合”:

抓包层级 工具 适用场景
代理抓包 Fiddler / Charles / Proxyman HTTPS 明文调试
协议分析 tcpdump / Wireshark TLS 握手错误、链路分析
自动化 mitmproxy scripting / pyshark 脚本化批量分析
补抓 抓包大师(Sniffmaster) pinning、QUIC、自定义协议等代理失败场景

只有多层工具协同,才能解决移动端和桌面端抓包的全场景问题。