为了账号安全,请及时绑定邮箱和手机立即绑定

Fiddler 抓不到包怎么办?从 HTTPS 调试到 TCP 分析的完整排查方案

标签:
iOS

在日常调试接口、查看移动端网络请求或验证 SDK 行为时,Fiddler 一直是开发者常用的抓包工具。但很多人都遇到过这样的情况:明明已经设置系统代理、安装证书、启用 HTTPS 解密,但 Fiddler 却“一个包都抓不到”。或者偶尔只能看到 CONNECT,HTTPS 内容完全没有。

这些现象并不是 Fiddler 单独的问题,而是 iOS、网络协议、证书体系与应用网络栈交互产生的结果。本文将以工程实践的方式解构 Fiddler 抓不到包的原因、排查思路、常见陷阱,并给出代理工具失效时的补充手段,包括如何使用 抓包大师(Sniffmaster) 捕获 TCP/HTTPS 数据流完成最终分析。


一、为什么 Fiddler 常常抓不到包?(核心原因概览)

Fiddler 与 Charles 等代理工具一样,依赖系统代理 + TLS 中间证书来实现 HTTPS 解密。所以,只要环境、协议或 App 本身不走代理,抓包自然失败。

证书链未被信任或被中间设备替换

表现:

  • 只有 CONNECT
  • 无 HTTPS 解密内容
  • APP 报“网络异常或证书错误”

常见于:

  • 公司 Wi-Fi
  • 办公网关注入证书
  • iOS 证书信任未开启

应用启用了证书 Pinning(最常见原因)

表现:

  • Safari 能抓
  • APP 完全抓不到
  • Fiddler 面板没有任何请求

pinning 会直接拒绝代理证书链。


QUIC / HTTP3 完全绕过系统代理

QUIC 使用 UDP,Fiddler 基于 TCP 代理,看到 QUIC 流量是“不可能任务”。

表现:

  • 部分接口抓不到
  • 网络切换后能抓
  • 视频/直播/社交类 API 尤其常见

APP 使用自定义协议或自定义网络栈

例如:

  • TCP 二进制协议
  • 内嵌 SDK 的独立网络层
  • WebSocket 长连接

这些都不会经过 Fiddler。


系统代理被 VPN、公司网关或安全软件覆盖

Fiddler 配置完全正确,但系统代理被覆盖 → 无效。


二、Fiddler 抓不到包的排查流程(工程可复用 SOP)

以下流程专为 iOS + Fiddler 场景总结。


验证代理与证书是否生效

检查:

  • 代理 IP 与端口
  • Fiddler 是否监听 HTTPS
  • iOS 中是否信任证书
  • 是否使用 VPN(会覆盖代理)

若 HTTPS 一条都看不到 → 多半是证书问题。


判断是否为 Pinning 导致抓包失败

判断方式:

  • 浏览器能抓
  • APP 抓不到
  • 没有任何 TLS 握手

这是最典型的场景。

若为 pinning → 应直接使用补抓方式。


判断是否为 QUIC(HTTP/3)绕过代理

关闭 QUIC 后再次尝试。

如果关闭 QUIC 后能抓 → 说明之前的流量本身就不走代理。


查看服务器端是否收到请求(tcpdump 验证链路)

使用后端 tcpdump 抓取是否有 ClientHello:

sudo tcpdump -i any port 443 -s 0 -w server.pcap
  • 若服务端无任何握手 → 请求在客户端就被拦截
  • 若有握手但失败 → 证书链有问题

三、当 Fiddler 抓不到包时:必须使用补抓工具(核心)

在代理彻底无法使用、证书链不可信、APP 拒绝代理证书、QUIC 绕过代理时,需要一种“非代理式抓包方式”来补充。

这时就需要用到:


抓包大师(Sniffmaster)——解决 Fiddler 抓不到包的关键补抓能力

能解决 Fiddler 抓不到的场景:

  • HTTPS 解密失败
  • 证书 pinning 阻断
  • QUIC UDP 流量
  • 自定义 TCP 协议
  • 应用不走系统代理
  • 流量噪声过大无法定位

技术能力包括:

  • 抓取 HTTPS / HTTP / TCP / UDP 流量
  • 可过滤某个 App / 进程 / 域名
  • 自动识别协议类型
  • 可查看纯 TCP 数据流(HEX / 文本 / 二进制)
  • 可使用 JavaScript 拦截修改请求或响应
  • 支持导出 Wireshark 可读 pcap
  • 支持 Windows / macOS / iOS 多平台

适用流程:

  1. 启动 Sniffmaster
  2. 选择目标 App 或域名过滤
  3. 抓取全部 TCP / TLS 流量
  4. 导出 pcap 到 Wireshark
  5. 与服务器 tcpdump pcap 逐帧比对
  6. 最终确认问题位置:
    • TLS
    • 证书链
    • QUIC
    • 网络丢包
    • 应用拒绝代理

这一步是 Fiddler 无法覆盖的。


四、实战案例:Fiddler 完全抓不到 HTTPS

某金融类 APP 在调试时遇到:

  • Fiddler 无任何 HTTPS
  • 仅看到 CONNECT
  • APP 内报“网络不可用”

排查步骤:

  1. 系统代理与证书检查无误
  2. Safari 能抓 → 系统证书正常
  3. 服务器 tcpdump 无任何握手
  4. 使用 Sniffmaster 捕获流量 → 发现 TLS Alert
  5. Wireshark 展示 pinning 失败
  6. 结论:APP 内强制 pinning 拒绝代理证书

最终通过底层抓包(非代理方式)成功定位问题原因。


解决 Fiddler 抓不到包必须“分层抓包”

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

单靠 Fiddler 无法覆盖所有 iOS 场景,分层抓包才是完整方案。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消