Charles 和 Fiddler 的做法是在电脑上开代理,再让手机连过去。HTTPS Capture 可以反过来:让 iPhone 当代理。同一 Wi-Fi 下的另一台手机、平板、电视盒子或笔记本把流量发给 iPhone,你在 iPhone 上查看。不在电脑旁边,或者想把安卓包和 iOS 包放在一起对比测试时很方便。
第一步:在 iPhone 上开启局域网抓包
- 打开 HTTPS Capture,在抓包页打开 局域网抓包(为同一 Wi-Fi 下的其他设备提供代理)。
- 点 开始 抓包。局域网代理运行在抓包隧道里,只有抓包期间才会监听。
- 页面上会显示 iPhone 的地址,比如
192.168.1.23:8082,点一下就能复制。
第二步:把其他设备的代理指向 iPhone
在另一台设备上,把 iPhone 的 IP 和端口设为 手动 HTTP 代理:
- 安卓:设置 → WLAN → 长按或编辑当前网络 → 高级 → 代理选 手动,填写主机和端口。
- iPad / 另一台 iPhone:设置 → 无线局域网 → ⓘ → 配置代理 → 手动。
- macOS:系统设置 → 网络 → Wi-Fi → 详细信息 → 代理,同时打开 网页代理(HTTP) 和 安全网页代理(HTTPS)。
- Windows:设置 → 网络和 Internet → 代理 → 手动设置代理。
在那台设备上浏览网页,它的请求就会和 iPhone 自己的流量一起出现在 HTTPS Capture 里。请求映射、重写、断点、Hosts 这些规则对它同样生效。
第三步:解密其他设备的 HTTPS
HTTP 流量马上就能看到。要解密 HTTPS,另一台设备也必须信任 HTTPS Capture 的 CA:
- 在 iPhone 上打开 MitM,在证书管理区点 导出 CA 证书,选 PEM 或 DER (.cer)。
- 通过隔空投送、邮件或网盘把文件发到另一台设备。
- 在那台设备上把它安装为受信任的根证书:macOS 用钥匙串访问打开,设为 始终信任;Windows 导入到 受信任的根证书颁发机构;安卓在安全设置里安装为 CA 证书。
安卓提示:从 Android 7 开始,App 默认不信任用户安装的 CA,除非 App 自己允许(通常只有调试包会这样做)。Chrome 和你自己的调试包可以解密,大多数应用商店里的 App 不行。
常见问题
- 什么都没抓到:确认两台设备在同一 Wi-Fi、iPhone 正在抓包。有些访客网络和公司网络会禁止设备之间互相访问。
- 地址变了:iPhone 换了网络后,重新复制新地址并更新代理设置。
- HTTPS 提示证书错误:另一台设备还没信任导出的 CA,或者你在导出之后 重新生成了 CA。
- iPhone 停止抓包后局域网代理也会停止。用完记得把另一台设备的代理设置删掉,否则它会上不了网。
准备好试试了吗?
HTTPS Capture · Capture and decrypt HTTPS traffic on iPhone
App Store 免费下载