一个简单的工作流程
- 选择抓包目标,再选择具体设备或模拟器。
- 打开“抓包配置”,完成对应的连接检查和首次授权。
- 点击“开始采集”,在目标 App 中发起新的请求。
- 选中一条请求,查看请求头、负载与响应;用筛选缩小范围。
- 停止采集,导出需要保留的记录,再退出或开始新会话。
想先熟悉界面?导入 HAR 或使用明确标记的合成示例。这些操作不会开始官方版的试用计时。
iPhone 与 iPad:通过 USB 连接
- 使用支持数据传输的 USB 线,解锁设备,并在设备上确认“信任此电脑”。
- 在 Rivercap 选择对应设备。HTTP 请求使用 USB 诊断日志,原始网络帧使用“USB 数据包”视图。
- 若要查看 USB HTTP 内容,在“抓包配置”打开 Apple 官方下载入口;按需要登录 Apple,下载 CFNetwork Diagnostics 描述文件。
- 在应用中选择并保存文件,确认目标设备后通过 USB 发送。然后在手机上确认安装,并按 Apple 说明重启。
- 重新连接同一设备并检查配置,开始采集后在目标 App 发起请求。
下载 Apple CFNetwork 描述文件 ↗ · Apple 配置与说明 ↗
发送成功不等于安装完成。手机上的确认与重启由你完成。Apple 诊断配置不是 HTTPS 代理的 CA 根证书;官方商业包不默认附带该文件。配置的有效期及移除规则按 Apple 说明处理。
不是所有 App、网络栈和系统版本都会输出完整诊断内容。原始 PCAP 中的 TLS 数据不会自动变为 HTTPS 正文。
查看这台 Mac 的网络请求
- 将“抓包目标”切换为“这台 Mac”。
- 首次开始采集时,按系统提示批准 Mitmproxy Redirector 网络扩展;可在“抓包配置”打开系统扩展设置。
- HTTPS 采集需要信任本机生成的公共 CA。导出公共证书后,在 Mac 钥匙串中手动设置相应 SSL 信任。
- 开始采集,在目标应用里发起新连接;完成后停止采集,让应用恢复正常联网。
Mac 目标也可能包含本机运行的模拟器进程。需要限定某一模拟器时,请使用模拟器目标。证书固定或不使用受支持连接方式的 App,可能无法提供可解密正文。
只导出公共 CA,不分享私钥。网络扩展与证书信任需要系统确认,Rivercap 不自动替你批准。停止时已有长连接可能断开,客户端的新连接恢复正常联网。
选择具体的 iOS 模拟器
- 安装 Xcode 与所需的 iOS Simulator runtime,并启动目标模拟器。
- 在 Rivercap 选择“iOS 模拟器”,再选中具体设备。
- 完成本机网络扩展授权。HTTPS 需要在抓包配置中,明确确认将 Rivercap CA 加入所选模拟器的信任列表。
- 在该模拟器里打开开发中的 App,开始采集并发起请求。
采集范围根据已确认的目标进程持续更新。无法确认范围时会停止采集,不会回退到全 Mac;未启动的模拟器不能开始。
从列表走到细节
- 请求头:常规信息、请求头与响应头,保留重复字段。
- 负载与响应:查询参数、请求正文、响应正文;JSON 格式化或源码查看,复制或另存。
- 复制 cURL:只生成并复制命令,不自动执行。缺失或截断的请求体不会被伪装成完整请求。
- 组合筛选:域名、App / 进程、方法、状态、内容类型和耗时可同时使用。进程名来自实际来源,不等同于 App bundle ID。
- 原始包与 TCP:查看协议、Hex / ASCII 及普通 TCP 双向分段。原始包的域名只来自实际观测内容。
“正文为空”与“来源没有提供正文”是两种不同状态。遇到缺失、截断或无法解码时,界面会显示原因。
先导出,再结束工作
抓包会话保存在内存中,退出、清空或开始新会话前请导出。达到缓存上限时较早记录会被移出,导出只包含仍然保留的内容。
- HTTP 请求:导入 / 导出 HAR。
- 原始 USB 数据包:导入 PCAP / PCAPNG,导出 PCAP / PCAPNG / JSON。
- 普通 TCP:单独查看双向数据,并可导出 JSON。
显示筛选不会改变全会话导出范围。试用结束后,停止、导入、查看、复制和导出仍然可用。
没有看到预期内容?
- USB 已连接,但没有 HTTP 记录
- 检查是否选中了正确设备,诊断配置是否仍有效、是否已在手机确认并重启,以及 App 是否产生新的受支持请求。可以查看 USB 原始包,确认是否存在网络活动。
- Mac 首次启动一直等待
- 检查网络扩展系统授权。若启动已取消,批准后再重新开始;保留的旧会话不会被失败启动清空。
- HTTPS 失败或看不到正文
- 检查目标是否信任当前本机 CA、应用是否使用证书固定,以及来源是否确实提供正文。不要把所有正文缺失都当作证书问题。
- 停止显示需要重试
- 再次点击“重试停止”,等待本次采集的网络清理完成。授权状态不会限制这个动作。