调试网络

Chute 是一个代理,但在自己设备上跑一个代理,理由通常不是选路,而是:从此每一条请求都要经过一个你说了算的地方。于是你可以看清一个 App 究竟发了什么、把正文留下来慢慢读、在传输途中改掉某个请求或响应,也可以把一个好端端的后端弄成坏的,看你的 App 会怎么办。

每种机制的参考页在本手册别处:HTTPS 解密Mock 响应URL 重写JS 脚本。这一节把它们按你实际使用的顺序串起来,并说清楚各平台之间有什么不同。

看同一个内核的四个窗口

同一个正在运行的 Chute,四种看法。挑错了窗口,就是「东西怎么不在」的常见原因。

运行在 请求与响应正文 能改运行中的内核 需要
App 自己 设备上 iOS 有;macOS 与 tvOS 没有 只有那几个开关
Web 控制台 任意设备的浏览器 MitM 主机、每一族改写、策略、配置 external-http-controller
Chute Dashboard 一台 Mac MitM 主机、每一族改写、两个开关 external-controller-access
HTTP 控制 API 任何会说 HTTP 的东西 有,base64 控制台能做的都能做 external-http-controller

控制台和 Dashboard 重叠很多,进入方式却不同——控制台由内核提供、用浏览器打开,Dashboard 是一个说二进制通道的 Mac 应用。两者谁也不是谁的超集,差异见 Dashboard 够不着的东西

先把四个开关弄对

几乎每一次「连接看得到,请求看不到」,最后都落在这四条里的某一条,按这个顺序:

  1. 流量真的到了 Chute。 流量视图里有一行,就是证据。什么都没有属于接管问题,不是调试问题——见疑难解答
  2. CA 装了并且被信任。 在 iOS 上是两步,在 macOS 上是一步,在 tvOS 上一步都不在 App 里——见安装并信任 CA 证书
  3. 主机在 MitM 列表里。 Chute 只解密你声明过的主机。一行显示 CONNECT、没有方法也没有状态码,说明它从来没被解密过。
  4. 录制是开着的。 replica = true,或者那个开关(Mac 上叫 流量捕获,iOS 与 tvOS 上叫 转储数据)。不开的话每一行仍然带着它的规则、策略和时序——缺的只是正文。[Replica] 再进一步收窄保留哪些。

第 3、4 条也都能在运行时从控制台、从 Dashboard、通过 API 拨动,而且这些都不会写回配置文件:重启之后以文件为准。

各平台各能给你什么

Chute iOS Chute Mac Chute tvOS
在 App 里查看 仪表盘界面——概览、请求、响应,含正文 流量 标签——只有选路,没有正文 会话列表——只有选路,没有正文
在 App 里开关 MitM 控制面板开关(需许可证) 菜单栏 → 启用 MitM(⌘M) 这个平台上没有这个开关
在 App 里开关录制 控制面板 → 转储数据(需许可证) 菜单栏 → 流量捕获(⌘B) 控制面板 → 转储数据(需许可证)
安装 CA 在 App 里装,再去设置里信任 在 App 里一步装完 只能靠 MDM 或 Apple Configurator
Chute Dashboard 怎么连 USB 线或 Wi-Fi 同一台 Mac 上的 127.0.0.1 Wi-Fi
怎么把文件弄出来 分享面板 文件系统 只有控制台,扫二维码

从这里往下

  • 从 Mac 调试 iPhone——从一部干净的手机到 Mac 屏幕上一段解密后的正文,全程。
  • 在 Mac 上调试——Mac 自己的流量,包括终端工具和按进程隔离。
  • 调试 Apple TV——一台没有浏览器、没有分享面板、也没法自己装证书的设备。
  • Replica——哪些连接会留下正文,以及怎么不再什么都抓。
  • 模拟与故障注入——固定响应、错误状态码、注入延迟,以及 Chute 确实做不到的事。

如果问题是「它不工作」而不是「它在干什么」,请从疑难解答开始,尤其是我的改写为什么没反应?——这一节最常引出的就是这个问题。

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-05 01:19:05

本页为英文版的翻译。如内容有出入,以英文版为准。

results matching ""

    No results matching ""