Quantumult X 抓包教程:证书、HTTPS 与排错步骤(最近核验于 2026-10-24)
简答:Quantumult X 抓包的最短流程是:在应用内生成或导出 MitM 证书,安装到 iPhone 后开启“证书信任设置”,再在 Quantumult X 中启用 MitM、HTTP Analyzer,并只填写需要分析的主机名。先用自有测试网页验证 HTTPS 请求,再处理具体 App;抓不到时优先检查证书信任、MitM 主机名和 VPN 配置。仅分析自己拥有或获授权的设备、网站和接口。
定义:Quantumult X 抓包,是利用 HTTP Analyzer 记录 HTTP 请求与响应,并通过 MitM 证书在授权条件下查看部分 HTTPS 流量的调试方法。
1. 先试这一步:用最短流程确认 HTTPS 能否显示
如果你只是想确认 Quantumult X 是否已经具备抓包条件,不要一开始就分析复杂 App。先在自己的 iPhone 上完成证书安装与信任,然后打开一个自有测试页面或你有权限调试的 HTTPS 服务,再回到 Quantumult X 的活动记录中查看是否出现请求。App Store 对 Quantumult X 的功能说明明确提到,HTTP Analyzer 可以记录完整的 HTTP 请求和响应,包括请求体与响应体;MitM 则用于处理 TUN 接口中的 HTTPS 流量,相关开关需要分别启用。可参考 App Store 中 Quantumult X 的功能说明。
- 打开 Quantumult X,找到证书或 MitM 相关设置,生成或导出 CA 证书。
- 在 iPhone 中安装下载的描述文件或证书。
- 进入“设置 > 通用 > 关于本机 > 证书信任设置”,对刚安装的根证书开启完全信任。Apple 说明,手动安装的证书不会自动获得 SSL/TLS 信任,必须在此处手动开启;如果页面没有出现该选项,通常表示设备尚未安装额外根证书。具体路径见 Apple 关于手动信任证书的说明。
- 返回 Quantumult X,启用 MitM,并把测试域名加入 hostname 或主机名范围;同时开启 HTTP Analyzer 或 HTTP 调试。
- 重新访问测试页面,观察活动记录中是否出现请求、状态码、请求头和响应信息。
如果 HTTP 请求能显示、HTTPS 请求完全不显示,优先回到第 3 步检查系统信任,而不是立刻修改规则或更换网络。
2. 抓包前需要准备什么
Quantumult X 抓包通常涉及三层:应用层的 HTTP Analyzer、用于解密 HTTPS 的 MitM、以及让流量经过应用的 TUN/VPN 配置。三者缺一时,界面可能看起来已经打开,但活动列表仍然没有目标请求。
| 项目 | 作用 | 未完成时的常见现象 |
|---|---|---|
| Quantumult X | 记录和分析 HTTP/HTTPS 活动 | 没有请求记录,或只能看到少量系统流量 |
| MitM 证书 | 让设备信任由本机调试功能生成的中间证书 | HTTPS 报错、请求不显示或只显示连接失败 |
| iOS 完全信任 | 允许手动安装的根证书用于 SSL/TLS | 证书已安装但 HTTPS 仍无法解密 |
| MitM 主机名 | 限定哪些域名进入 HTTPS 解密范围 | 目标域名未显示,其他域名可能正常 |
| HTTP Analyzer | 记录请求、响应及可见的 body | 只能看到连接状态,无法查看完整内容 |
| TUN/VPN 权限 | 使设备流量经过 Quantumult X | 浏览器或 App 流量绕过记录模块 |
Quantumult X 的公开项目说明也将 MitM HTTPS 解密、HTTP Analyzer 和 Rewrite 分开列为不同能力,因此不要把“开启 Rewrite”误认为“已经开启抓包”。可查看其公开的 Quantumult X GitHub 项目说明。
3. 证书生成、安装与信任:按 iPhone 顺序操作
- 在 Quantumult X 中生成证书。在设置中查找 MitM、证书、CA 或生成证书等入口。不同版本的菜单名称可能略有差异,若找不到,应以当前 App 界面为准,不要随意下载来历不明的证书文件。
- 导出或安装证书。如果应用提供“安装证书”按钮,按系统提示完成;如果提供下载文件,则使用 Safari 或系统文件流程打开描述文件。证书文件和私钥不是同一概念,私钥、CA 密码或 p12 文件不应上传给别人。Quantumult X 的公开配置示例也提醒用户保管 CA passphrase 和 p12 私钥。
- 完成 iOS 系统信任。进入“设置 > 通用 > 关于本机 > 证书信任设置”,在“启用根证书完全信任”区域打开对应证书。Apple 明确说明,手动安装的证书默认不会自动用于 SSL/TLS。
- 回到 Quantumult X 开启 MitM。开启 MitM 后,只将你要调试的域名写入 hostname。可以先填写一个明确的测试域名,确认成功后再逐步增加范围,避免把所有设备流量都纳入调试。
- 开启 HTTP Analyzer。在 Quantumult X 中打开 HTTP Analyzer 或同义的 HTTP 调试开关,然后访问测试地址。若只想看连接而不需要 body,可先保留较小的抓取范围;需要查看 JSON 时,再确认响应体是否被记录。
安全上,证书信任应当是临时调试措施。调试结束后,关闭 Quantumult X 的 MitM 和 HTTP Analyzer,并在 iOS 的证书信任设置中关闭或删除不再使用的证书。
4. HTTP、HTTPS、MitM 与 Rewrite 到底有什么区别
| 概念 | 主要用途 | 是否等同于抓包 |
|---|---|---|
| HTTP | 记录未加密的请求与响应 | 可以直接记录,但内容可能不完整或不适用于 HTTPS |
| HTTPS | 通过 TLS 加密传输的网页或接口请求 | 通常需要 MitM 证书与主机名匹配后才能查看内容 |
| MitM | 在授权调试环境中建立本机调试用的中间证书链 | 是 HTTPS 解密条件,不是请求分析列表本身 |
| HTTP Analyzer | 查看请求方法、URL、头部、body、状态码和响应 | 是查看记录的主要入口 |
| Rewrite | 修改请求或响应的 URL、头部、状态或内容 | 不是抓包开关,开启后可能改变测试结果 |
排查时建议先只开启 MitM 与 HTTP Analyzer,不要同时启用大量 Rewrite 规则。这样能把“请求根本没有经过 Quantumult X”和“请求经过了但被规则改写”区分开来。公开配置示例中,MitM 使用 hostname 限定处理范围,Rewrite 则单独位于 rewrite 配置段,说明两者职责不同。
5. 如何阅读一条抓到的请求
抓到请求后,不要只看 URL。按下面顺序查看,通常能更快判断问题位于 DNS、连接、鉴权还是服务端响应。
- 请求方法和 URL:确认是 GET、POST、PUT 还是其他方法,并检查域名、路径和查询参数是否符合预期。
- 状态码:2xx 通常表示服务端已返回成功类响应,3xx 需要看跳转位置,4xx 常与请求参数、权限或鉴权有关,5xx 更适合继续检查服务端日志和上游依赖。
- 请求头:重点观察 Host、Content-Type、Authorization、Cookie、User-Agent 和自定义设备字段。不要把含有 Cookie、Token、手机号或内部地址的截图直接公开。
- 请求体:JSON 请求通常需要同时检查字段名、数据类型、时间戳和签名字段。表单提交则要确认编码方式是否与服务端预期一致。
- 响应头与响应体:检查 Content-Type、缓存、压缩和跨域相关头部,再查看 JSON 中的错误码或 message。若响应体为空,先确认服务端是否本来就没有返回 body。
- 时间与重复请求:同一操作可能产生预检、重试、图片请求和接口请求,不要把第一条记录误认为最终业务请求。
调试时建议使用专门的测试账号、测试数据和自有接口。抓包记录中可能包含登录凭据或个人信息,导出文件、截图和分享链接都应先脱敏。
6. 抓不到 HTTPS 请求:按这张清单逐项排查
- 确认系统证书已完全信任。证书“已安装”不代表“已信任”。重新检查“设置 > 通用 > 关于本机 > 证书信任设置”。
- 确认目标域名写在 MitM hostname 中。如果只写了 example.com,而实际请求使用 api.example.com,主机名匹配可能不成立。先加入精确域名测试,再决定是否使用通配范围。
- 确认 HTTP Analyzer 已开启。MitM 负责 HTTPS 解密,Analyzer 负责记录和展示;只开其中一个可能看不到完整请求。
- 确认流量经过 Quantumult X。检查系统 VPN 配置是否已授权、Quantumult X Tunnel 是否处于运行状态,并暂时关闭其他 VPN、代理或网络过滤应用。
- 确认测试对象确实发起了网络请求。有些页面使用缓存、预取或本地数据,重新打开页面不一定产生新的接口请求。可执行刷新、退出后重新进入,或使用自有测试接口。
- 排除证书绑定或应用安全策略。部分 App 会校验证书公钥或使用额外的网络安全策略,因此即使系统证书已信任,也可能拒绝被调试。不要通过绕过安全机制去获取他人数据;对自有 App,应在开发环境使用可调试配置。
- 确认没有被 Rewrite 改写。暂时禁用相关 Rewrite 规则,重新测试,避免规则把请求拒绝、重定向或修改后导致误判。
如果浏览器中的自有 HTTPS 测试页面可以显示,而某个 App 仍然无法显示,问题更可能位于该 App 的证书校验、网络栈或流量路径,而不是基础证书安装。这个判断只能作为排查方向,不能据此断定具体 App 使用了某种安全机制。
7. 抓包结束后的清理与安全边界
- 关闭 Quantumult X 的 MitM 和 HTTP Analyzer,停止不必要的 Tunnel 调试。
- 在 iPhone 的证书信任设置中关闭相关根证书;不再使用时删除证书描述文件。
- 删除包含 Cookie、Authorization、Token、个人资料或内部域名的抓包文件。
- 不要把 CA 私钥、p12 文件、证书密码或完整请求日志上传到公共平台。
- 只对自有设备、自有服务或已经获得明确授权的测试对象进行抓包。
- 如果需要长期调试,优先建立单独测试账号和测试环境,不要直接使用生产账号。
Apple 的证书文档说明,证书用于建立信任链,而手动安装的额外根证书需要用户明确开启信任;这也是为什么调试结束后应及时撤销信任范围,而不是长期保留。
常见问题 FAQ
Quantumult X 只抓到 HTTP,抓不到 HTTPS,最常见原因是什么?
最常见是证书已经安装但没有在 iOS“证书信任设置”中开启完全信任,其次是目标域名没有加入 MitM hostname,或 HTTP Analyzer 没有开启。建议先用自有 HTTPS 测试页面逐项验证。
证书信任设置里没有出现 Quantumult X 的证书怎么办?
通常表示描述文件或根证书尚未成功安装,或者安装后系统没有识别到额外根证书。回到 Quantumult X 重新执行生成、导出和安装流程,再重新打开“证书信任设置”检查。
是否需要把 hostname 写成所有域名?
不建议一开始扩大范围。先写入明确的测试域名,确认请求能显示后,再按实际调试目标增加主机名。范围越大,越容易记录不必要的隐私流量。
抓包时能看到请求头,但看不到 JSON 响应体,说明失败了吗?
不一定。服务端可能没有返回 body、使用了压缩或流式响应,也可能当前记录只展示了头部。先检查响应的 Content-Type、状态码和 Analyzer 的 body 记录开关,再用简单的自有 JSON 接口测试。
某个 App 完全无法抓取,应该继续改规则吗?
不建议盲目改规则。先确认浏览器和自有测试接口正常,再判断该 App 是否使用证书绑定、独立网络栈或其他安全策略。对非自有 App,应停止进一步尝试;对自有 App,改用开发环境配置排查。
抓包完成后只关闭 MitM,证书还需要处理吗?
建议同时关闭或删除不再使用的根证书,并清理抓包文件。只关闭 MitM 不会自动删除已经安装的证书,也不会自动清除已保存的 Cookie、Token 或请求日志。
常见问题
Quantumult X 生成的证书安装在哪里查看?
可以先在 iPhone 的“设置 > 通用 > VPN 与设备管理”检查描述文件,再到“设置 > 通用 > 关于本机 > 证书信任设置”查看是否出现可完全信任的根证书。不同 iOS 版本名称可能略有差异。
开启完全信任后仍然抓不到请求,下一步查什么?
先确认目标域名是否写入 MitM hostname,再确认 Quantumult X Tunnel 和 HTTP Analyzer 都在运行。随后临时停用 Rewrite 与其他 VPN,使用自有 HTTPS 页面重新测试,避免同时修改多个变量。
Quantumult X 抓包会记录所有手机流量吗?
是否记录取决于流量是否经过 Quantumult X、HTTP Analyzer 是否开启以及 MitM hostname 范围。为减少隐私暴露,应只加入必要域名,并在测试结束后关闭相关功能和证书信任。
为什么同一个网页有很多条抓包记录?
一个页面可能同时发起 HTML、脚本、图片、字体、接口、预检和重试请求。应按域名、路径、方法和时间筛选,优先寻找真正承载业务数据的接口,而不是把所有请求当成同一条。
抓包日志能不能直接发给别人帮忙分析?
不建议直接发送。日志可能包含 Cookie、Token、Authorization、用户标识、内部域名和请求参数。分享前应删除敏感字段,使用测试账号和脱敏后的最小片段,避免上传证书私钥或 p12 文件。