在 iOS 网络调试中,抓包工具并不是装一个就能用。
不同工具站在不同网络位置,能看到的数据范围并不一样。
如果在一开始就选错工具,后面所有操作都会变成反复配置,而不是推进问题。
先确认抓包目标,再决定工具位置
在开始抓包前,我会先把目标拆成几个具体问题:
- 是抓浏览器请求,还是 App 内请求
- 请求是否走系统网络
- 是否需要看到 HTTPS 的请求体
- 是否需要修改请求或响应
这些问题的答案,会直接限制工具的选择范围。
代理类工具,验证系统网络路径
在 iOS 抓包中,代理工具的作用非常明确:
验证请求是否经过系统代理。
操作路径
- 电脑启动代理工具
- iPhone 与电脑连接同一 Wi-Fi
- 在 Wi-Fi 设置中手动填写代理地址和端口
- 在 iOS 上安装并信任代理证书
- 打开 Safari 访问 HTTPS 网站
如果 Safari 请求能完整显示,说明:
- 代理链路是通的
- HTTPS 解密已生效
此时再打开目标 App,观察是否有请求出现。
代理能抓 Safari,抓不到 App 时发生了什么
当 Safari 流量可见,而 App 完全没有请求时,可以确认一件事:
App 的网络请求没有经过系统代理。
在这个状态下:
- 继续重装证书
- 更换端口
- 重启代理工具
都不会让请求出现,因为网络路径已经绕过了代理。
用数据确认请求是否真实存在
在放弃代理之前,需要确认 App 是否真的发起了网络请求。
这一步可以借助网络层工具:
- 抓取 DNS 查询
- 观察 TCP 建连
- 查看 TLS ClientHello
如果在操作 App 时能看到这些底层连接,说明请求存在,只是抓包工具站错了位置。
设备级抓包:直接从 iOS 侧获取数据
当确认请求不走系统代理后,需要切换到设备级抓包方式。
在这种模式下,工具不再依赖 Wi-Fi 代理,而是直接从 iOS 设备获取网络数据。
使用抓包大师(Sniff Master)的操作路径
- 使用 USB 连接 iPhone
- 保持设备解锁并信任电脑
- 启动抓包大师并选择对应 iOS 设备
- 按提示完成驱动与描述文件安装
- 进入 HTTPS 暴力抓包相关模式并开始抓包
整个过程不需要在手机上设置代理,也不需要手动信任抓包证书。
通过 App 级筛选缩小范围
设备级抓包启动后,系统流量会大量出现。
在抓包大师中,可以通过「选择 App」功能:
- 只保留目标应用
- 忽略系统服务和后台进程
这样可以在一次业务操作后,直接定位到对应请求。

如何判断抓到的数据是否完整
在抓包结果中,有一个可直接观察的现象:
- URL 和 Header 可见
- 请求体或响应体为空
这表明 HTTPS 已被捕获,但 App 并未使用 iOS 开发证书签名。
此时工具本身没有异常,数据缺失来自平台限制。

需要完整数据时的处理路径
当调试目标要求查看请求体或响应体时,操作路径是确定的:
- 获取目标 App 的 IPA
- 使用 iOS 开发证书重新签名
- 如 IPA 加密,需要先完成脱壳
- 安装重签后的 App
- 重新进行 HTTPS 抓包
完成后,HTTPS 数据即可完整解析。
拦截与修改,只在代理模式中出现
在常见 Sniffmaster 中,请求 / 响应拦截器只存在于代理模式。
- 代理抓包:
- 可设置拦截规则
- 可修改请求和响应内容
- 设备级 HTTPS 抓包 / 数据流抓包:
- 只负责采集和解密
- 不提供修改能力
在需要验证客户端逻辑分支时,需要明确切回代理模式。

把多种工具放在同一条流程里
一次完整的 iOS 抓包流程中,不同工具承担不同职责:
- 代理工具:验证系统代理路径
- 网络层工具:确认请求是否真实存在
- 设备级抓包工具:获取真实 HTTPS 数据
- 重签名:解决数据不完整问题
工具并不互相替代,而是覆盖不同层级。
如果一个抓包步骤连续多次没有新现象出现,问题可能不在配置上,而在工具选择上。
换抓包层级,比反复调整同一工具更有效。