Skip to content

iPhone 抓包抓不到 HTTPS?请求不显示的常见原因和解决方法

只看到 CONNECT、某个 App 抓不到、响应 304 没有内容?逐一排查 iPhone 抓包的常见问题:证书信任、SSL Pinning、HTTP/3、VPN 冲突等。

3 分钟阅读HTTPS Capture

在 iPhone 上开了抓包,想看的请求却没出现,或者 Body 看不懂,甚至某个 App 突然用不了了?这类问题大多来自几个常见原因。下面以 HTTPS Capture 为例逐项排查,原因对所有 iPhone 抓包工具都适用。

1. 只看到 CONNECT,看不到真实 URL

CA 证书装了,但 没有开启信任。到 设置 → 通用 → 关于本机 → 证书信任设置,打开 HTTPS Capture 证书的开关。App 里的 MitM 页面应显示三步全部完成。如果重新生成或导入过 CA,旧描述文件已经对不上,删掉后信任新的。完整步骤见 iPhone 抓包证书安装与信任。

2. 某个 App 的流量就是解不开

这个 App 多半用了 证书固定(SSL Pinning),只认自己服务器的证书,任何抓包工具的 CA 都不管用。银行、支付和部分社交 App 很常见。为了不影响使用,HTTPS Capture 发现 App 拒绝证书后,会在一段时间内让这个主机 不解密直接通过。要绕过证书固定需要修改 App 本身,这超出了 App Store 工具能做的范围。

3. 看不到 Apple 的服务

Apple 域名(iCloud、App Store、推送等)默认不抓,因为通常不是调试目标,而且很多本身有证书固定。需要的话,在 设置 里打开 抓包 Apple 域名。有证书固定的 Apple 主机仍然会自动放行。

4. Google、YouTube 等 App 的部分请求始终不出现

这些很可能是 HTTP/3(QUIC) 连接。HTTP/3 走 UDP 而不是 TCP,HTTPS Capture 会原样转发,所以这类请求不会出现在 HTTP 列表里。很多 App 在 HTTP/3 不可用时会改用 HTTP/2,换个网络环境时同一功能的请求也许就能看到。

5. 响应状态 304,Body 是空的

App 已经缓存了这个文件,只是在问服务器“有没有变化”,304 Not Modified 本来就没有 Body。在 设置 里打开 防缓存,它会去掉请求里的 If-None-Match 和 If-Modified-Since,服务器就会返回完整内容。对新请求立即生效。

6. 原来的 VPN 断开了

iOS 同一时间只能运行一个 VPN,HTTPS Capture 正是通过 VPN 看到流量的。如果抓包时需要让流量继续走公司或家里的代理,在 设置 → Upstream Proxy(上游代理) 里添加即可,支持 HTTP、HTTPS、SOCKS5,可以设置认证,也可以选择代理失败时直连。

7. App 卡住、请求一直不结束

  • 检查是否开了 断点。抓包页出现红色的已暂停请求徽章,说明有请求在等你处理,见 断点调试。
  • 关掉不再需要的规则(请求映射、重写、脚本、服务端回放),或者切换到一个干净的 配置文件。
  • 如果某个服务只在抓包时出问题,试试在设置里关闭 HTTP/2 MITM,退回 HTTP/1.1。

8. 抓到了但列表里没有

  • 可能开了 URL 筛选器 的白名单。这时只记录匹配的 URL,其他请求照常转发,但不会保存。
  • 列表自己的 筛选(方法、状态码、内容类型、耗时)可能隐藏了部分请求,点筛选按钮清除。

9. 看不到 DNS 查询

DNS 记录默认关闭。在设置里打开 DNS 抓包,然后重新开始抓包。详见 iPhone 查看 DNS 请求记录。

还是不行?

先停止再重新开始抓包。如果问题依旧,可以在 设置 里反馈,写清楚是哪个 App、做了哪些操作。

HTTPS Capture

Capture and decrypt HTTPS traffic on iPhone

App Store

准备好试试了吗?

HTTPS Capture · Capture and decrypt HTTPS traffic on iPhone

App Store 免费下载