客户端观察 · Clash 技术博客

iOS 上 Stash、Shadowrocket 与 Surge 怎么选?

三款应用都能处理代理规则,但适合的人并不一样。只导入订阅、经常改规则,还是需要脚本自动化,会直接决定该选 Shadowrocket、Stash 还是 Surge。

  • iOS
  • Stash
  • Shadowrocket
  • Surge
本文目录

先按你在 iPhone 上真正要做的事来选

想沿用 Clash 风格配置,可以看 Stash;只需导入节点和做基础分流,可以看 Shadowrocket;每天都要调试请求、脚本和模块,再考虑 Surge。

还要比较配置兼容、规则编辑、局域网共享、购买方式和迁移成本。三款应用都能代理,但使用方式并不相同。

明确推荐

主要需求优先考虑不适合的情况
沿用 Clash 风格策略组与规则Stash只有单节点、完全不维护规则时可能显得偏重
导入常见节点、基础分流、价格敏感Shadowrocket需要完整的 Surge 模块工作流或团队调试时不够统一
网络调试、脚本、模块、MITM 是日常工作Surge只想更新订阅和换节点时成本与学习量过高

标注“支持 Clash”,也不代表原配置可以直接导入

Stash 官方定位是把 Clash Premium 风格能力带到 Apple 平台,因此已经使用 proxy-groups、rules 和 Rule Provider 的用户通常更容易延续原来的组织方式。仍要查看实际导入结果:脚本、TUN、DNS 和个别 Mihomo 新字段未必一一对应。

Shadowrocket 是独立的规则代理工具。官方 App Store 说明列出了域名、CIDR、GeoIP 规则、远程规则文件、DNS、脚本过滤和多级转发,但它不是 Mihomo 图形前端。节点导入成功后,原来的 Clash 策略组和覆写不一定还保持同样结构。

Surge 使用自己的 Profile 与 Module 体系。Module 会以更高优先级覆盖 Profile,适合维护可审查的本地补丁;只有 Clash 订阅、又不准备重做规则时,不应因为 Surge 功能多就默认迁移成本最低。

真正拉开差别的是每天要改什么

把第一次导入放到一边,再想想以后最常打开哪个页面。这个答案通常比功能清单更能说明哪款应用适合长期使用。

Stash
更适合围绕 Clash 风格策略组选择、覆写和规则集维护;也覆盖 iOS、tvOS、macOS 与 visionOS。
Shadowrocket
适合快速添加常见节点与规则,并可在 iPhone、iPad、Mac 和 Apple TV 使用;当前功能与购买地区以 App Store 页面为准。
Surge
适合查看连接、维护模块、执行脚本和调试 HTTP 流量。官方文档对 Module、MITM 和脚本有完整体系。
Stash 的设置页面,配置文件入口位于页面上方
Stash 把配置文件管理放在设置页。截图来自本站 Stash 实机教程,版本变化时入口名称可能不同。查看 Stash 图文教程
Shadowrocket 首页,右上角加号用于添加订阅或节点
Shadowrocket 的导入入口更直接。截图来自本站 Shadowrocket 实机教程,节点信息已处理。查看 Shadowrocket 图文教程

需要给局域网设备共享时,先看有没有明确的代理入口

局域网共享方式

应用可以确认的做法选择时要注意
Stash官方文档明确支持 iOS 提供 HTTP 与 SOCKS 代理;开启“允许局域网连接”后使用手机局域网 IP 和 7890 端口这是手动代理共享,iPhone 不会因此变成完整透明网关
ShadowrocketApp Store 说明覆盖本机流量与多级转发,但没有把局域网共享写成主要承诺若当前版本设置里没有明确的共享监听入口,不要按第三方旧截图推断
Surge官方原理文档说明 iOS 可用本地代理服务接管另一台设备的请求目标设备仍要手动填写代理;具体监听地址与权限以当前 Profile 和版本为准

无论使用哪款应用,共享前都要允许 iOS 的“本地网络”权限,并让两台设备处于同一 Wi-Fi 或个人热点。先用另一台设备打开一个测试网页,再从 iPhone 的请求记录确认它确实进入预期策略;不用时关闭监听,公共 Wi-Fi 上不要暴露无认证代理。

脚本和 MITM 只有明确用途时才开启

三款工具都可能出现重写、脚本或 HTTPS 解密相关能力,但普通订阅连接并不需要安装根证书。MITM 会让应用在本机重新签发证书,部分采用证书锁定的 App 还会直接拒绝连接。

准备安装 Module 或远程脚本时,应先读源文件,确认它修改的主机、请求头和响应内容。Surge 官方文档明确说明 Module 可以覆盖 Rule、Script、URL Rewrite 与 MITM 设置;这正是它强大的地方,也意味着不应把来源不明的模块当成主题包随手导入。

付款前打开当前 App Store 页面

价格、上架地区、家庭共享与支持设备都可能调整。Shadowrocket 当前美国区 App Store 页面显示为独立付费应用,并明确说明不附带代理服务;Stash 与 Surge 也需要以购买账号所在地区的商店页面和官方说明为准。

如果未来还要在 Apple TV、Mac 或家庭成员设备上使用,先确认同一购买能否下载、配置怎样同步,以及脚本和证书是否会跟着迁移。把这些成本算进去,才是实际价格。

迁移时只搬订阅、规则和确实需要的设置

决定更换后,不要把旧应用的全部缓存和证书一起搬过去。先让新应用完成最小连接,再把自己真正维护过的内容逐项补回。

迁移顺序

  • 保存原始订阅地址和当前可用的策略组名称
  • 列出自己写过的规则、模块或脚本,不复制未知缓存
  • 新应用第一轮只验证订阅、固定节点、锁屏和切网
  • 高级规则逐项重建,每加入一项就查看一次连接
  • 新应用稳定数日后再删除旧配置与证书

参考资料