VPN07

iOS代理工具MitM解密实战:HTTPS抓包、证书安装与App去广告完整教程2026

2026-03-03 阅读约20分钟 软件教程 iOS MitM解密

安全声明:MitM(中间人)功能是代理工具提供的本地 HTTPS 解密机制,仅对本设备流量生效,主要用途是运行广告过滤脚本和应用调试。所有解密操作均在本设备完成,不会将流量发送给第三方。请勿将此技术用于拦截他人通信。

文章说明:本文详细讲解 iOS 主流代理工具的 MitM 功能配置,包括 Shadowrocket(小火箭)、Surge(iOS/macOS)、Quantumult X(QX)三款工具的证书生成、安装、信任全流程,以及如何配合脚本实现 App 去广告、价格查询等实用功能。

什么是 MitM?为什么需要它?

HTTPS 协议通过 TLS 加密保护数据传输,正常情况下代理工具只能"转发"加密流量而无法读取内容。MitM(Man-in-the-Middle,中间人)机制通过在本设备安装自签名 CA 证书,让代理工具扮演"受信任的代理人"角色,对 HTTPS 流量进行解密、处理后再重新加密转发。

🚫

广告过滤

通过脚本识别并屏蔽 App 内的广告请求,彻底去除 App 内置广告,无需越狱。

🔍

流量分析

查看 App 发出的 API 请求内容,用于开发调试、了解 App 行为或数据追踪分析。

✏️

内容修改

通过重写规则修改 HTTP 响应头、注入 JavaScript 脚本,实现会员价格检测等功能。

Shadowrocket(小火箭)MitM 配置

第一步:生成并安装 CA 证书

1

进入 MitM 设置

打开 Shadowrocket → 底部"配置"标签 → 点击当前配置文件旁边的">"→ 滑动找到"HTTPS 解密"→ 打开开关

2

生成 CA 证书

点击"生成新的 CA 证书" → 证书生成完毕后点击"安装 CA 证书到系统"→ 系统弹窗确认,跳转到"设置"安装描述文件

3

在"设置"中安装描述文件

iOS 设置 → 通用 → VPN与设备管理 → 点击"Shadowrocket CA"→ 右上角"安装"→ 输入密码确认

⚠️

信任证书(关键步骤!)

iOS 设置 → 通用 → 关于本机 → 证书信任设置 → 找到"Shadowrocket CA"→ 打开开关 → 确认"继续"

第二步:配置解密域名(hostnames)

在 Shadowrocket 配置文件的 MitM 区域添加需要解密的域名,不建议使用 * 通配全部(会导致部分 App 崩溃):

[mitm]
enable = true
ca-p12 = (自动生成的 Base64 证书内容)
ca-passphrase = (自动生成的密码)
hostname = api.weibo.cn, *.iqiyi.com, *.bilibili.com, -*.apple.com
# 注意:在域名前加 - 表示排除该域名(如 Apple 服务建议排除)

Surge MitM 配置(iOS & macOS)

Surge 的 MitM 功能最为完善,支持脚本(Script)和重写(Rewrite)联动,是专业用户首选。

iOS 端配置步骤

1

生成证书

Surge 主界面 → 底部"更多"→ "MitM" → 打开"启用 MitM" → "安装 CA 证书"

2

安装并信任

同 Shadowrocket 步骤:设置→通用→VPN与设备管理安装,再到"证书信任设置"打开信任开关

3

配置文件中添加解密域名

在 Surge 配置文件 [MitM] 段添加 hostname,Surge 支持通配符和排除语法

[MitM]
enable = true
ca-passphrase = your_passphrase
ca-p12 = (Base64证书内容)
hostname = *.weibo.com, api.weibo.cn, *.iqiyi.com
# 排除 Apple 和银行类域名(避免应用崩溃)
skip-server-cert-verify = false  # 保持 false,验证服务端证书

[Script]
# 结合脚本实现去广告
bilibili-ads = type=http-response, pattern=https://api.bilibili.com/x/resource/show/skin, script-path=bilibili-ads.js, requires-body=true

[Rewrite]
# URL 重写规则(不需要解密也能用)
^https://example.com/ads reject-200

Quantumult X MitM 配置

Quantumult X 将 MitM 功能集成在"重写"(Rewrite)模块中,UI 操作比 Surge 更直观。

1

进入重写设置

右下角风车图标 → "重写" → 右上角"+" → "配置 MitM"

2

生成 CA 证书

点击"生成证书" → "安装证书" → iOS 系统弹窗安装描述文件

3

信任证书(必须!)

iOS 设置 → 通用 → 关于本机 → 证书信任设置 → 找到 Quantumult CA → 打开信任

4

添加解密 hostname

在 QX 配置文件 [mitm] 段添加 hostname,开启 MitM 总开关

[mitm]
passphrase = your_passphrase
p12 = (Base64证书内容)
hostname = *.weibo.com, api.weibo.cn
# 使用远程脚本(BoxJs 等)
skip_validating_cert = false

[rewrite_remote]
# 订阅远程重写规则集(含MitM hostname)
https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Rewrite/Block/Advertising.conf, tag=去广告规则, update-interval=86400, opt-parser=true, enabled=true

常见问题与解决方案

Q1:安装证书后 App 仍然提示"连接不安全"或 SSL 错误,怎么办?

最常见原因是忘记在"证书信任设置"中手动信任证书。iOS 安装描述文件只是"安装",但要作为受信任根证书使用,必须额外在"关于本机 → 证书信任设置"中打开开关。这个步骤与安装步骤是分开的,很多用户会遗漏。

Q2:开启 MitM 后某些 App 崩溃或白屏,如何解决?

部分 App 实现了 SSL Pinning(证书固定)技术,会主动验证服务端证书指纹,不接受第三方 CA。解决方法:在 hostname 中用 - 前缀排除该 App 的域名,或者专门针对该 App 关闭 MitM。银行类 App、支付类 App 几乎都有 SSL Pinning,强烈建议将其域名加入排除列表。

Q3:MitM 功能会影响代理节点速度吗?

解密 HTTPS 流量需要额外的 CPU 运算(TLS 握手+重加密),会轻微增加延迟(通常 5-15ms)。对于日常浏览影响微不足道,但高频大量解密(如抓包调试)会明显消耗 CPU 和电量。建议只对需要解密的特定域名启用 MitM,不要使用 * 全局解密。

Q4:MitM 证书更换设备后需要重新安装吗?

是的。CA 证书是与设备绑定的,更换设备或重装系统后需要重新生成并安装证书。部分工具(如 Surge)支持导出 CA 证书在多设备间共享,但对于安全性要求高的场景建议每台设备独立生成。

Q5:Shadowrocket 的 MitM 和 Surge 的 MitM 有什么区别?

功能上类似,但深度不同。Surge 的 MitM 与其 Script 引擎深度集成,支持复杂的 JS 脚本操作响应体、修改 HTTP Header;Shadowrocket 的 MitM 相对基础,主要用于触发脚本。Quantumult X 介于两者之间,通过"重写"规则支持 URL 替换、Header 修改和响应体修改,操作简单直观。

Q6:在哪里找安全可靠的脚本资源?

推荐来源:GitHub 上的开源脚本项目(如 NobyDa、DivineEngine 的脚本集)、各代理工具社区(Telegram 群组、论坛)。安全注意事项:只使用开源可审查的脚本,不要运行来源不明的 Base64 混淆脚本,定期检查已安装的脚本权限。

三款工具 MitM 能力对比

功能 Shadowrocket Surge Quantumult X
HTTPS 解密 ✓ 最全面
JS 脚本引擎 基础 完整 较完整
URL 重写
Header 修改 部分 ✓ 完整
远程脚本订阅 有限 ✓ 最便捷
操作难度 简单 较复杂 中等

配合 MitM 的实用脚本场景

开启 MitM 后,结合 JavaScript 脚本可以实现许多实用功能。以下是几个典型使用场景:

🚫 App 内广告过滤

通过拦截广告 API 请求(如 ad.example.com/show)并返回空响应,实现去除 App 内置广告。常见应用:哔哩哔哩开屏广告、微博广告、爱奇艺开屏等。

适用工具:Shadowrocket(脚本)/ Surge(Script)/ Quantumult X(重写)

💰 价格查询与比价

通过解析购物 App 的 API 响应,提取商品历史价格或其他地区价格,帮助判断是否处于真实低价。部分脚本还支持自动提醒降价。

常用脚本:京东比价脚本、淘宝历史价格等

🔓 会员功能解锁

通过修改 App API 响应中的会员标识字段,实现部分应用的功能解锁。注意:此操作可能违反应用服务条款,请自行评估法律风险。

仅供学习了解,请支持正版服务

🔍 App 行为分析

开发者/安全研究者可以通过 MitM 查看 App 发送的所有 API 请求,分析数据收集行为、调试 API 接口、查找安全漏洞等。

适合:iOS 开发者、隐私研究者

MitM 安全注意事项

⚠️ 重要安全提示

  • CA 证书权限极高:安装后代理工具可以解密任意 HTTPS 流量,务必保管好配置文件(含 p12 证书私钥)
  • 不要共享含 CA 的配置文件:他人获得你的 CA 私钥后可以冒充任意 HTTPS 站点
  • 银行和支付类 App 不要开启 MitM:即使有 SSL Pinning 保护,也建议明确排除这些域名
  • 只使用可审查的开源脚本:混淆过的商业脚本存在数据收集风险
  • 定期检查已安装的脚本:脚本订阅更新后内容可能改变,建议定期审查

高级技巧:远程脚本订阅与自动更新

手动添加脚本效率低,主流 iOS 代理工具支持"远程脚本订阅"功能,可以一键添加社区维护的脚本集并自动保持最新版本。

Quantumult X 远程重写订阅

[rewrite_remote]
# 订阅远程重写/MitM 规则集
# opt-parser=true 表示支持使用解析器处理配置文件
https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/Rewrite_lhie.conf, tag=lhie去广告, update-interval=86400, opt-parser=false, enabled=true

https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rewrite/QuantumultX/Advertising/Advertising.conf, tag=blackmatrix7广告过滤, update-interval=86400, opt-parser=false, enabled=true

Surge 外部规则集与脚本

[Script]
# 远程脚本(定期自动更新)
bilibili-ads = type=http-response, pattern=^https://api\.bilibili\.com/x/resource/show/skin, script-path=https://raw.githubusercontent.com/example/bilibili-clean.js, requires-body=true, max-size=32768

[MITM]
hostname = *.bilibili.com, api.bilibili.com

脚本安全警告:远程脚本每次更新后内容可能发生变化。建议只订阅 GitHub 上有明确社区审核、Stars 数量较多的知名仓库,并关注仓库的 issue 和 commit 记录,及时发现异常更改。

MitM 快速配置检查清单

配置完成验收清单

已生成 CA 证书(非过期)
已在"通用→VPN与设备管理"安装描述文件
已在"证书信任设置"手动开启信任
已在配置文件中启用 MitM 开关
已将目标域名加入 hostname 列表
已将银行/支付域名加入排除列表

各工具 MitM 功能详细对比

在三款主流 iOS 代理工具中,MitM 的实现深度和功能边界有明显差异:

🚀 Shadowrocket MitM 特点

  • • 配置最简单,适合入门用户,安装证书后即可启用
  • • 支持基础脚本(http-response / http-request 类型)
  • • 支持 URL 重写(reject / 302 跳转 / 内容替换)
  • • 脚本能力相比 Surge 有限,不支持 persistent-store(持久存储)
  • • 配置文件中 hostname 修改后需重启才生效

⚡ Surge MitM 特点

  • • 最完整的 JS 引擎,支持 $httpClient、$persistentStore 等 API
  • • 支持 Mock API(模拟接口响应)用于开发调试
  • • 支持 Body Rewrite(响应体内容替换,正则匹配)
  • • 可在脚本中读写持久化变量(跨请求状态保持)
  • • macOS 版额外支持 TCP Override 和端口转发

💎 Quantumult X MitM 特点

  • • 远程重写订阅支持最友好,可一键订阅社区规则集
  • • 支持 URL 正则匹配替换(rewrite 规则)
  • • JS 脚本能力介于 Shadowrocket 和 Surge 之间
  • • "抓包"功能界面直观,适合分析 App 流量行为
  • • 支持通过 BoxJs 可视化管理脚本配置项

MitM 与 VPN 节点速度的关系

很多用户担心开启 MitM 会影响代理节点的连接速度。实际测试数据如下:

+5-15ms
MitM增加延迟
<5%
吞吐量下降
500ms+
首次连接额外延迟
~0
后续连接影响(Session复用)

MitM 对速度的影响主要体现在首次 TLS 握手阶段(需要额外的证书验证和重加密操作),后续同一域名的连接因 TLS Session 复用而几乎无额外开销。对于日常浏览体验,5-15ms 的额外延迟基本感知不到,只有在频繁建立新连接的场景(如高并发 API 测试)才会有明显影响。

配合 VPN07 千兆带宽节点(实测速度 820Mbps+),即使开启 MitM 功能也能保持极高的实际传输速度,让 iOS 代理工具的脚本功能完全发挥而不损失性能。

常见 MitM 故障排查

问题:Safari 可以正常解密,但 App 仍然报 SSL 错误

解决方案:检查 App 是否实现了 SSL Pinning,在 hostname 中用 -*.appname.com 排除该 App 的所有域名。Safari 使用系统信任证书,而 App 可以自行实现证书验证逻辑,两者行为不同。

问题:重启 iPhone 后 MitM 突然失效,需要重新配置

原因通常是 CA 证书过期(部分工具生成的证书有效期为1年)。进入工具的 MitM 设置,查看证书到期时间,如已过期需重新生成并安装。建议每年在手机日历中设置提醒。

问题:脚本运行但没有效果(广告仍然显示)

排查步骤:① 确认 MitM 已对目标域名启用(hostname 中有对应域名);② 在工具的活动/日志面板确认脚本被触发(有执行记录);③ 检查脚本版本是否过期(App 更新后 API 路径可能变化);④ 在 Quantumult X 中使用"抓包"功能查看实际请求路径是否与脚本匹配。

问题:升级 iOS 系统后 MitM 无法正常工作

iOS 大版本升级(如 iOS 17 → iOS 18)有时会重置证书信任设置,但不会删除已安装的描述文件。解决方案:重新进入 iOS 设置 → 通用 → 关于本机 → 证书信任设置,重新打开对应 CA 证书的信任开关即可,无需重新安装证书。

问题:如何验证 MitM 是否正常工作

使用 Safari 访问任意 HTTPS 网站,点击地址栏左侧的锁图标查看证书信息——如果发行者显示为代理工具的 CA 名称(如"Shadowrocket CA"),说明 MitM 已在工作。如果发行者仍是原网站的 CA(如 DigiCert 或 Let's Encrypt),则 MitM 未生效,需检查证书信任设置。

Shadowrocket
最简单配置
Surge
脚本能力最强
Quantumult X
订阅最方便

2026年推荐组合:对于大多数用户,推荐使用 Shadowrocket + VPN07 订阅的组合——Shadowrocket 提供最完整的协议支持和易用的 MitM 配置,VPN07 提供 70+ 国家的高质量节点(千兆带宽,稳定运营十年)。如果你是开发者或脚本发烧友,则推荐 Surge 5 + VPN07,享受 Surge 强大的 MitM 脚本引擎。

💡 MitM 使用总结

MitM 是 iOS 代理工具中最强大但也最需要谨慎使用的功能之一。正确配置后,它能让你的代理工具从"网络通道"升级为"智能流量处理平台"——去广告、价格分析、流量调试无所不能。

关键原则:最小化解密范围(只添加真正需要的域名到 hostname),使用可信脚本来源(GitHub 开源可审查),排除敏感应用(银行、支付、医疗)。遵循这三个原则,MitM 功能可以安全地增强你的网络体验。

VPN07 — 配合 iOS 代理工具的最佳选择

兼容全平台 · 千兆带宽 · 稳定运营十年

使用 Shadowrocket、Surge 或 Quantumult X 时,节点质量决定了实际体验。VPN07 提供标准订阅链接,与三款 iOS 工具完全兼容,单节点带宽高达 1000Mbps,覆盖 70+ 国家,配合 MitM 脚本和分流规则实现极致网络体验。稳定运营十年,是专业 iOS 代理用户的可靠之选。

¥9/月
超低月费
1000Mbps
千兆带宽
70+国家
全球节点
30天退款
无忧保障

相关文章推荐

月费¥9 · 运营十年
免费试用 VPN07