基础要求
- 已购买安装 Shadowrocket(App Store,约 $2.99)
- iOS 12.0 或更高版本
- 建议先配置好基础代理(可选,但通常需要)
安装 HTTPS 证书(关键步骤)
如需抓取 HTTPS 加密流量,必须先安装 MITM 证书:
- 生成证书:Shadowrocket → 设置 → 证书 → 生成新的 CA 证书
- 安装描述文件:点击"安装证书",系统会跳转到 Safari 下载描述文件
- 信任证书:
- 设置 → 通用 → VPN 与设备管理 → 安装下载的描述文件
- 关键:设置 → 通用 → 关于本机 → 证书信任设置 → 开启 Shadowrocket 证书信任
开启抓包功能
快捷抓包(推荐)
- 打开 Shadowrocket 主界面
- 点击底部导航栏的"工具"(Tools)
- 选择"抓包"(Packet Capture)
- 点击右上角"开始"按钮(圆形录制图标)
配合代理抓包
- 开启 Shadowrocket 全局代理
- 进入 设置 → 工具 → 抓包
- 开启"记录流量"开关
- 可选择开启"解密 HTTPS"(需已安装证书)
配置抓包参数(进阶)
在抓包设置界面,建议配置:
过滤设置:
- 包含域名:*.api.example.com(只抓特定接口)
- 排除域名:*.google.com, *.apple.com(过滤系统流量)
2. 存储设置:
- 最大记录数:建议 500-1000 条
- 自动清理:开启(防止占用过多内存)
3. HTTPS 解密:
- 开启"解密 HTTPS 流量"
- 选择"跳过证书验证"(测试环境用,生产环境慎用)
执行抓包与分析
实时抓包
- 点击开始后,切换到目标 App 进行操作
- 返回 Shadowrocket → 工具 → 抓包,查看实时请求列表
查看请求详情
点击单条记录可查看:
- 请求:URL、Method、Headers、Body
- 响应:Status Code、Headers、Body(支持 JSON/图片/文本预览)
- 时间:DNS 解析、TCP 连接、TLS 握手、传输耗时
导出数据
- 点击右上角分享按钮 → 导出为 .har 文件
- 可通过 AirDrop、邮件或文件 App 发送到电脑
- 在电脑上用 Chrome DevTools、Charles 或 Wireshark 分析
常见问题解决
无法抓取 HTTPS(显示加密)
- 检查证书是否正确安装并信任
- 确认"解密 HTTPS"开关已开启
- 部分 App 使用 SSL Pinning(证书固定),无法抓取(如银行 App、微信部分接口)
抓包导致网络变慢
- 正常现象,抓包会消耗额外性能
- 建议抓包时关闭"全局路由",使用"配置"模式减少无关流量
某些 App 无法联网
- 可能是证书验证失败,将该域名加入 HTTPS 解密黑名单
- 或临时关闭抓包功能
iOS 16+ 系统限制
- 部分系统级请求(如 iCloud、推送服务)无法抓取
- 需要关闭"私有 Wi-Fi 地址"(设置 → Wi-Fi → 点击当前网络 → 私有地址)
实用技巧
- 快速筛选:在抓包界面下拉搜索,支持 URL、域名、Method 过滤
- 复制 cURL:长按请求 → 复制 cURL 命令,方便在终端复现
- 重写测试:结合 Shadowrocket 的"重写"功能,可修改请求参数进行测试
- 脚本处理:配合 JavaScript 脚本自动处理抓包数据(高级功能)
注意事项
⚠️ 隐私合规:抓包可能涉及敏感信息,请勿在公共网络抓取他人数据,遵守相关法律法规
⚠️ 证书安全:生成的 CA 证书请妥善保管,避免被恶意利用
⚠️ App 限制:部分金融、支付类 App 检测到抓包会拒绝服务或封号,请谨慎使用
如需更复杂的抓包分析,建议将 .har 文件导入 Charles Proxy 或 Fiddler 进行专业分析。