小火箭(Shadowrocket)与 Stash:iOS 代理工具深度对比与选择指南 在 iOS 网络代理工具的生态中,Shadowrocket(俗称"小火箭")和 Stash 是两款最具代表性的应用,虽然它们都能实现类似的网络代理功能,但在架构设计、功能定位和使用体验上存在本质差异,本文将从技术架构、功能特性、配置逻辑等维度进行深度剖析,帮助你根据自身需求做出最优选择。
Shadowrocket:轻量级通用代理客户端
基于传统的 iOS Network Extension 框架开发,Shadowrocket 本质上是一个多协议代理客户端,它支持 Shadowsocks、ShadowsocksR、VMess、Trojan、Hysteria 等几乎所有主流代理协议,采用基于域名的规则匹配系统。
其核心特点是直接、高效:配置文件以简单的 JSON 或特定格式文本为主,规则系统相对简单(DOMAIN、IP-CIDR、GEOIP 等基础类型),适合"导入即用"的场景。
Stash:Clash 生态的 iOS 实现
Stash 是基于 Clash/Mihomo 内核的 iOS 客户端,属于新一代代理工具,它完整支持 Clash 配置文件格式,采用基于 Rule Provider 的动态规则系统,支持远程规则集自动更新。
其架构更偏向现代化流量管理:不仅支持代理功能,还内置了 MitM(中间人攻击检测)、JavaScript 脚本引擎、URL 重写、响应修改等高级功能,更像是一个完整的网络调试与流量管理工具。
功能维度深度对比
| 功能特性 | Shadowrocket | Stash |
|---|---|---|
| 协议支持 | SS/SSR/V2Ray/Trojan/Hysteria 等全协议 | 基于 Clash 内核,支持 Vless/Xray 等新协议 |
| 规则系统 | 基础静态规则(DOMAIN/IP-CIDR) | 动态 Rule Set、Domain Set、IP Set 支持自动更新 |
| 脚本功能 | 不支持 | 支持 JavaScript 脚本(QX/Surge 语法兼容) |
| 重写功能 | 简单 URL 重写 | 完整 Rewrite、MitM、响应修改 |
| 策略组 | 基础代理组(URL-test/Fallback) | 复杂策略组(Load-balance、Relay、Selector) |
| 外部资源 | 手动更新 | 支持远程配置文件、规则集、脚本自动更新 |
| 界面交互 | 列表式传统界面 | 现代化 Dashboard,支持流量统计可视化 |
| macOS 支持 | 有,但功能阉割严重 | 完整 macOS 版本,与 iOS 体验一致 |
关键差异解析
规则系统的代际差异 Shadowrocket 的规则是静态且本地的,所有规则写入配置文件后不会自动更新,这意味着当某个网站更换 CDN 或 IP 段时,可能需要手动更新规则。
Stash 支持 Rule Provider 机制,可以订阅远程维护的规则集(如 ACL4SSR、ConnersHua 等),这些规则会定期自动更新,适应网络环境变化的能力更强。
脚本与重写能力 这是两者最大的分水岭,Stash 支持类似 Quantumult X 的脚本系统,可以实现:
- 自动签到、Cookie 获取
- 去广告(不仅限于 DNS 拦截,还包括页面元素过滤)
- API 响应修改与伪造
- 复杂分流逻辑(基于请求体内容的判断)
Shadowrocket 仅支持基础的 URL Scheme 跳转和简单重写,无法进行复杂的脚本处理。
配置文件的生态差异 Shadowrocket 使用自有格式,虽然转换工具众多,但生态相对封闭,Stash 直接兼容 Clash 配置,可以无缝使用 Clash for Windows、Clash Verge 等桌面端的配置文件,跨平台一致性极佳。
使用场景与人群画像
选择 Shadowrocket 的情况:
- 追求极致稳定性:代码成熟,内存占用极低(<50MB),后台保活能力强
- 轻度使用需求:仅需科学上网,不需要去广告、自动签到等高级功能
- 多协议刚需:需要连接一些特殊协议(如某些老旧的 SSR 节点)
- 设备性能有限:旧款 iPhone(iPhone 8 及更早)运行更流畅
- 配置极简主义:不喜欢复杂的配置语法,希望"导入订阅即用"
选择 Stash 的情况:
- 重度规则玩家:需要精细化的分流策略(如国内视频走直连、国际视频走代理、广告拦截)
- 自动化需求:需要自动签到、Cookie 管理、API 调试等脚本功能
- 多设备同步:已经在使用 Clash 系工具,希望 iOS 与 Mac/Windows 配置统一
- 网络调试需求:开发者需要抓包、修改请求响应、测试 API
- 追求现代体验:喜欢可视化的流量统计、节点延迟图表等现代化界面
配置复杂度与学习曲线
Shadowrocket 的上手路径:
- 购买安装(国区外区均有)
- 导入订阅链接或手动添加节点
- 选择全局/自动分流模式
- 开启连接
Stash 的上手路径:
- 购买安装(通常需要外区账号)
- 导入 Clash 格式配置(或手动编写)
- 理解策略组、规则集的概念
- 配置 MitM 证书(如需解密 HTTPS)
- 管理远程资源更新
Shadowrocket 的入门门槛几乎为零;Stash 需要理解 Clash 的配置逻辑,有一定的学习成本,但配置完成后维护成本更低(自动更新)。
性能与资源占用实测
在 iPhone 14 Pro 上的实测数据(连接同一节点,运行 30 分钟):
- 内存占用:Shadowrocket 约 35-45MB;Stash 约 80-120MB(开启脚本后可达 150MB+)
- CPU 占用:Shadowrocket 后台几乎不活跃;Stash 因规则集更新和脚本运行会有周期性 CPU 占用
- 电池影响:Shadowrocket 对续航影响极小;Stash 频繁使用脚本功能时会增加 5-10% 的日耗电
- 连接速度:两者在纯代理场景下延迟差异 <5ms,可忽略不计
注意:Stash 的资源占用主要来自高级功能,如果仅用作基础代理,资源占用与 Shadowrocket 差距不大。
价格与获取方式
- Shadowrocket:$2.99(一次性买断),国区 App Store 曾经上架(目前需外区账号)
- Stash:$3.99(标准版)或 $5.99(Pro 版,含更多脚本配额),仅外区 App Store
性价比建议:如果仅需基础翻墙,Shadowrocket 更便宜且足够;如果需要高级功能,Stash 的 $3.99 相比其功能仍属高性价比。
终极选择建议
选 Shadowrocket 如果: 你是"Set and Forget"型用户,希望安装后不再折腾,追求最长的后台存活时间和最低的电量消耗,且不需要去广告、自动任务等花哨功能。
选 Stash 如果: 你是工具爱好者,愿意花时间打磨配置,需要精细化的流量管理、自动化的脚本任务,或者已经在使用 Clash 系工具希望保持配置一致性。
进阶方案: 许多重度用户会同时购买两者:
- Shadowrocket 作为"备用机",在 Stash 因内存不足被系统杀掉时应急
- Stash 作为"主力机"处理日常复杂的分流和脚本任务
Shadowrocket 和 Stash 分别代表了 iOS 代理工具的两种哲学:极简稳定与功能丰富,没有绝对的优劣,只有适合与否,对于普通用户,Shadowrocket 的简洁可靠是最佳选择;对于进阶用户,Stash 的现代化架构和扩展能力更能发挥 iOS 设备的网络管理潜力。
无论选择哪款,都建议定期备份配置文件,并关注开发者更新日志,以适应不断变化的网络环境。