客户端配置教程 • • 更新:2026-09-25 • 实操配置指南

Shadowrocket(小火箭)入门教程与规则分流

iOS 经典网络工具 Shadowrocket 新手全方位指南。从正版获取渠道、节点/订阅导入,到配置(Config)规则模式与分流原理深入解析。

Shadowrocket(小火箭)iOS 入门安装、订阅导入与配置分流全解

Shadowrocket(小火箭)入门教程与规则分流

Answer Block

Shadowrocket 是 iOS 平台上一款基于 Apple NetworkExtension 框架构建的轻量级规则化网络代理客户端。它本身不提供任何节点或订阅服务,仅作为本地代理内核与规则引擎的容器,通过导入用户自备的代理配置(如 Shadowsocks、VMess、VLESS、Trojan、Hysteria 等协议)实现流量的按规则转发。其核心能力在于“规则分流”:依据内置或用户导入的规则列表(Rule Set),将国内域名/IP 判定为直连(Direct),将海外域名/IP 判定为代理(Proxy),从而在保证本地访问速度的同时完成跨境访问。安装必须通过非中国大陆区 Apple ID 在 App Store 购买正版,任何“免费下载”“企业签名版”“TestFlight 共享版”均存在窃取 Apple ID、注入恶意配置、劫持流量的风险。Shadowrocket 的工作模式分为配置模式(Config)、代理模式(Proxy)与直连模式(Direct),其中配置模式是规则分流的实际执行形态。

一、Shadowrocket 是什么:从 NetworkExtension 说起

要理解 Shadowrocket,必须先理解 iOS 的网络扩展机制。

iOS 从 9.0 开始引入 NetworkExtension.framework,允许第三方 App 创建两类与网络相关的系统级扩展:

  • NEPacketTunnelProvider:数据包隧道提供者,可接管设备的三层/四层流量,构建虚拟网卡(utun),这是所有代理类 App 的技术底座。
  • NEFilterDataProvider:内容过滤提供者,用于按流做拦截或审计。

Shadowrocket 使用的是前者。当你在 App 内开启一个配置后,系统会弹出“Shadowrocket 想添加 VPN 配置”的授权框,这实际上是在向系统注册一个 Personal VPN Profile。授权后,系统会创建一个 utun 虚拟接口,所有符合条件的流量被路由进这个接口,再由 Shadowrocket 内置的代理内核(早期基于 shadowsocks-libev 与自研规则引擎,后续版本支持多协议)进行处理。

关键点有三:

  1. 它不是 VPN 服务商。Shadowrocket 只是“管道工”,管道另一头连哪里,完全取决于你导入的节点。
  2. 它没有后台常驻权限。iOS 不允许第三方 App 长期后台运行,NetworkExtension 是系统托管的扩展进程,因此代理能在锁屏、切换 App 时保持,但会被系统在低内存时回收。
  3. 它受系统 VPN 槽位限制。iOS 同一时间只允许一个 Personal VPN 处于连接状态,这也是为什么 Shadowrocket 与其它同类 App 不能同时开启。

理解了这三点,后面所有的“导入”“分流”“模式”才有落脚点。

二、正版安装与安全防伪

2.1 为什么必须用非国区 Apple ID

Shadowrocket 从未在中国大陆区 App Store 上架。你在国区搜索到的“小火箭”“Shadowrocket 加速器”“Shadowrocket Pro”全部是仿冒品。正版唯一获取途径是:使用非中国大陆区(如美区、港区、日区等)的 Apple ID,在 App Store 搜索 “Shadowrocket”,开发者显示为 Shadow Launch Technology Limited,售价通常为 2.99 美元(各区定价略有差异,且会随汇率调整)。

2.2 山寨版本的典型特征与危害

特征说明
免费或极低价正版是付费买断制,任何“免费领”“共享账号下载”都不可信
企业签名分发通过描述文件安装的版本,证书可被随时吊销,且可读取你的全部网络流量
TestFlight 共享正版不使用 TestFlight 分发,TestFlight 版本可被作者随时替换为恶意构建
图标近似但名称不同如 “Shadowrocket - Proxy” “ShadowRocket VPN” 等
要求输入 Apple ID 密码正版购买只需在 App Store 内验证,绝不会在 App 内二次索要

山寨版本最直接的危害是:你的所有代理流量、订阅链接、甚至部分明文凭据都会经过攻击者控制的服务器。订阅链接一旦泄露,等于把你的节点资产拱手让人。

2.3 购买与安装步骤

  1. 准备一个非国区 Apple ID(自行注册,注意账单地址与区服一致)。
  2. 在 App Store 退出当前账号,登录该非国区账号。
  3. 搜索 “Shadowrocket”,核对开发者名称与售价。
  4. 购买并下载。购买后该 Apple ID 永久拥有该 App,可重复下载。
  5. 下载完成后可切回原 Apple ID,App 仍可正常使用与更新(更新时需再次登录购买账号)。

三、订阅与节点导入方式

Shadowrocket 支持多种导入途径,按使用频率排序如下。

3.1 剪贴板导入(最常用)

复制一条节点链接(如 ss://、vmess://、vless://、trojan://、hysteria2://)或一条订阅链接,打开 Shadowrocket,它会自动检测剪贴板并弹窗提示“是否导入”。确认后节点或订阅即被添加。

3.2 二维码扫描

在首页右上角点击“扫描二维码”,对准节点或订阅的二维码即可。适合在电脑上生成二维码、手机扫码的跨设备场景。

3.3 HTTPS 订阅链接管理

这是最推荐的方式,因为节点变更时只需在服务端更新,客户端下拉刷新即可同步。

操作路径:首页 → 右上角 “+” → 类型选择 Subscribe → 粘贴 URL → 保存。

订阅链接通常形如:

https://example.com/api/v1/client/subscribe?token=xxxxxxxx

保存后,在首页对应订阅条目上左滑 → 更新,即可拉取最新节点列表。Shadowrocket 支持设置“自动更新”,可在订阅详情里开启,间隔通常为 1 天。

3.4 手动添加单节点

首页 “+” → 类型选择对应协议 → 逐项填写服务器、端口、密码、UUID、传输方式(ws/grpc/tcp)、TLS 等参数。适合调试或临时使用。

3.5 配置文件导入

如果你拿到的是 .conf 或 .sgmodule 文件(例如某些规则集或模块),可通过 AirDrop、文件 App 或 URL 导入。Shadowrocket 会自动识别并放入“配置”或“模块”列表。

四、分流模式深度对比

Shadowrocket 首页底部有三个全局开关:全局路由(Global Routing) 下的 配置 / 代理 / 直连。很多人误以为这只是“开关档位”,实际上三者对应完全不同的流量处理路径。

4.1 直连模式(Direct)

技术原理:不启动 NetworkExtension 隧道,或启动后所有流量直接走系统默认路由。DNS 由系统 resolver 处理,不经过任何代理内核。

适用场景:临时关闭代理、排查“是不是代理导致的问题”。

注意:直连模式下,即使你配置了一堆规则,也全部不生效。

4.2 代理模式(Proxy)

技术原理:所有流量(除少数系统保留流量)无条件送入代理内核,再由内核转发到当前选中的节点。不做任何域名/IP 判定。

适用场景:需要全局代理的极端场景,或调试节点连通性。

代价:国内网站也走海外节点,延迟高、速度慢,且部分国内服务会因海外 IP 触发风控。

4.3 配置模式(Config)——规则分流的实际执行形态

这是 Shadowrocket 的核心价值所在。

技术原理:

  1. 流量进入 utun 后,代理内核读取当前选中的配置文件(Config)。
  2. 配置文件由若干段组成,核心是 [Rule] 段,每条规则形如:
    DOMAIN-SUFFIX,qq.com,DIRECT
    DOMAIN-SUFFIX,google.com,PROXY
    IP-CIDR,10.0.0.0/8,DIRECT
    GEOIP,CN,DIRECT
    FINAL,PROXY
  3. 内核按从上到下的顺序匹配。命中 DIRECT 的流量走系统默认路由直出;命中 PROXY 的流量送入节点;命中 REJECT 的流量被丢弃(用于去广告)。
  4. FINAL 是兜底规则,通常设为 PROXY 或 DIRECT,取决于你的使用习惯。

DNS 处理:配置模式通常配合 [General] 段中的 dns-server 与 fallback-dns-server 使用。国内域名用国内 DNS 解析,海外域名用加密 DNS(如 DoH/DoT)解析,避免 DNS 污染导致规则误判。

规则集(Rule Set):Shadowrocket 支持引用远程规则集,例如:

RULE-SET,https://example.com/rules/ads.list,REJECT
RULE-SET,https://example.com/rules/cn.list,DIRECT

这样规则可以集中维护,不必写死在本地配置里。

典型分流逻辑:

  • 国内域名/IP → DIRECT(直连,走本地宽带)
  • 海外域名/IP → PROXY(走节点)
  • 广告域名 → REJECT(丢弃)
  • 未匹配 → FINAL(兜底)

为什么配置模式是默认推荐:它在“访问速度”与“跨境能力”之间取得平衡。国内流量不绕路,海外流量走代理,DNS 污染被规避,广告被拦截。代价是规则列表需要维护,且首次匹配有一定开销(现代内核已优化到微秒级,实际无感)。

五、跨平台/跨终端操作要点

虽然 Shadowrocket 是 iOS 独占,但规则与订阅是跨平台通用的。以下操作在其他终端上逻辑一致:

  • Android:使用支持 VpnService 的客户端(如 Clash Meta for Android、v2rayNG、Sing-box),导入同一订阅链接,规则集可复用。
  • Windows/macOS:Clash Verge、Mihomo Party、Sing-box 等,导入订阅后同样支持 Rule 模式。
  • 路由器:OpenWrt 上的 OpenClash、PassWall,可将订阅与规则下发到全屋设备。

关键差异在于:iOS 的 NetworkExtension 是单隧道模型,Android 的 VpnService 支持分应用代理(可指定哪些 App 走代理),桌面端则通常支持TUN 模式与系统代理模式两种。理解这些差异,才能在多设备间保持一致的分流体验。

六、5 个高价值长尾 FAQ

H3:Shadowrocket 的配置模式和代理模式到底差在哪?为什么我开了配置模式国内网站还是走了代理?

配置模式与代理模式的本质区别在于是否执行规则匹配。代理模式是无条件全局转发,配置模式是先匹配 [Rule] 段再决定走向。如果你在配置模式下发现国内网站仍走代理,通常有三个原因:

第一,当前选中的配置文件里 FINAL 规则被设为了 PROXY,而你的国内域名没有被前面的 DIRECT 规则命中。解决方法是检查规则列表是否包含 GEOIP,CN,DIRECT 或 RULE-SET,cn.list,DIRECT。

第二,DNS 解析被污染。如果国内域名被解析成了一个海外 IP,那么 GEOIP,CN 判定就会失败,流量被送入 FINAL。解决方法是在 [General] 段配置国内 DNS 作为主解析,并开启 fallback 加密 DNS。

第三,规则顺序错误。规则是从上到下匹配的,如果一条宽泛的 DOMAIN-KEYWORD 代理规则排在国内规则之前,就会抢先命中。解决方法是把精确规则放前面,宽泛规则放后面,FINAL 永远在最后。

理解这三点,基本能解决 90% 的“分流不生效”问题。

H3:订阅链接导入后节点全部超时,是 Shadowrocket 的问题还是节点的问题?

先做分层排查,不要一上来就怀疑 App。

第一层:确认订阅是否成功拉取。在订阅条目上左滑更新,看是否提示“更新成功”以及节点数量是否变化。如果更新失败,说明订阅 URL 本身不可达(可能被墙、可能 token 失效),此时与 Shadowrocket 无关。

第二层:确认节点参数是否正确。部分订阅返回的节点依赖特定传输层(如 ws + TLS + SNI),如果服务端配置变更而客户端未更新,就会超时。手动点开一个节点,核对端口、UUID、传输方式、SNI 是否与订阅描述一致。

第三层:确认本地网络是否放行。某些企业 Wi-Fi、校园网会封锁非标准端口(如 443 以外的端口),此时换 4G/5G 测试即可判断。

第四层:确认是否被系统 VPN 槽位冲突。iOS 同一时间只允许一个 Personal VPN,如果你同时装了其它代理 App 并处于连接状态,Shadowrocket 的隧道可能无法正常建立。关闭其它 VPN 再试。

第五层:确认 Shadowrocket 版本。旧版本可能不支持新协议(如 Hysteria2、VLESS Reality),更新到最新版再试。

如果五层都排查完仍超时,基本可以判定是节点服务端问题,而非客户端问题。

H3:Shadowrocket 的规则集(Rule Set)和配置文件(Config)是什么关系?我该用哪个?

两者是“零件”与“整机”的关系。

配置文件(Config) 是一个完整的 .conf 文本,包含 [General]、[Proxy]、[Rule]、[Host] 等段落,定义了 DNS、代理组、规则、Host 映射等全部行为。它是 Shadowrocket 实际加载的对象,同一时间只有一个配置生效。

规则集(Rule Set) 是一段独立的规则列表,通常以 .list 或 .yaml 形式托管在远程 URL 上,只包含规则条目,不含 DNS 和代理定义。它必须被配置文件通过 RULE-SET,<url>,<policy> 引用才会生效。

该用哪个:如果你只是普通用户,直接用别人维护好的配置文件即可,规则集是配置作者的事。如果你想自己维护规则,建议采用“薄配置 + 远程规则集”的结构:配置文件里只写 DNS、代理组和几条 RULE-SET 引用,具体规则放在远程 .list 里,这样规则更新时不必改配置文件,只需服务端更新 .list,客户端下拉刷新即可。

这种结构的另一个好处是:同一份规则集可以同时被 iOS 的 Shadowrocket、Android 的 Clash Meta、桌面的 Mihomo 引用,实现跨平台规则统一。

H3:为什么 Shadowrocket 开启后,某些 App(如银行、支付、流媒体)会报错或无法使用?

这是规则分流与 App 自身风控共同作用的结果,常见于三类场景。

第一类:IP 风控。银行、支付类 App 会检测出口 IP 是否与账号注册地一致。如果你把这些 App 的流量误送进了海外节点,就会触发风控。解决方法是在规则里为这些 App 的域名显式添加 DIRECT,例如 DOMAIN-SUFFIX,icbc.com.cn,DIRECT。更彻底的方式是使用 iOS 的“分应用代理”能力——但 Shadowrocket 本身不直接提供按 App 分流(这是 Android VpnService 的特性),iOS 上只能通过域名/IP 规则间接实现。

第二类:证书校验。部分 App 使用证书绑定(Certificate Pinning),如果代理内核做了 MITM(中间人解密),证书链就会断裂。Shadowrocket 默认不做 MITM,但如果你开启了 HTTPS 解密模块,就会触发这个问题。解决方法是关闭解密,或为该 App 的域名添加 DIRECT。

第三类:流媒体区域检测。Netflix、Disney+ 等会检测出口 IP 是否属于数据中心。即使你的节点在目标区域,也可能因为 IP 被标记为机房而无法播放。这属于节点质量问题,与 Shadowrocket 无关,只能更换节点。

核心原则:风控敏感类 App 一律直连,流媒体类 App 单独指定节点,普通浏览走规则分流。

H3:Shadowrocket 的配置文件和模块(Module)有什么区别?模块能做什么配置文件做不到的事?

配置文件(Config)和模块(Module)都是 Shadowrocket 的配置载体,但作用层级不同。

配置文件是全局的,定义 DNS、代理、规则、Host 等核心行为,同一时间只有一个生效。它决定“流量怎么走”。

模块是叠加式的,可以在不替换主配置文件的前提下,向当前配置注入额外的规则、Host 映射、URL 重写等。多个模块可以同时启用,按顺序叠加。它决定“在现有走向基础上额外做什么”。

模块能做的典型事情包括:

  • 去广告:注入 REJECT 规则,拦截特定域名。
  • URL 重写:把某个 App 的请求重定向到另一个地址(常用于解锁某些功能)。
  • Host 映射:把域名强制解析到指定 IP。
  • 脚本注入:部分模块支持 JavaScript 脚本,在请求/响应阶段做处理。

配置文件做不到的是“叠加”与“热插拔”。你不可能为了加一条去广告规则就替换整个配置文件,但可以启用一个模块。这就是模块存在的意义。

需要注意的是,模块的 URL 重写与脚本能力如果被恶意利用,可以窃取你的请求内容。因此只启用来源可信的模块,不要随意导入来路不明的 .sgmodule 文件。这与第二部分强调的“正版安装”是同一套安全逻辑:Shadowrocket 本身是中性的管道工具,风险永远来自你导入的内容。