Shadowrocket 分流规则怎么设置?从零配置到命中排查
简答:Shadowrocket 分流规则设置的最短路径是:先导入或打开配置文件,在 Config 页面确认文件已启用,再把首页 Global Routing 设为 Config;随后按“具体规则在前、宽泛规则在后、FINAL 最后”的顺序修改,并分别验证规则是否命中、代理节点是否能连接。本文只讲 iPhone/iPad 上的 Shadowrocket 分流,不覆盖其他客户端、完整订阅制作或第三方服务状态。
定义:Shadowrocket 分流规则是根据域名、IP 地址段或地理区域等条件,为请求选择代理、直连或拒绝策略的配置规则。
先做 30 秒速查:从零设置只走这四步
- 进入配置:打开 Shadowrocket 的
Config页面,导入已有配置文件,或打开当前列表中的配置文件。应用说明显示,Shadowrocket 支持从 URL 或 iCloud Drive 导入规则文件,但导入文件不等于已经启用该文件。可先查看 App Store 中的 Shadowrocket 功能说明。 - 确认当前文件:在
Config页面确认你准备修改的文件处于当前使用状态。不要只编辑列表中的其他文件,也不要把“订阅中的服务器条目”和“分流配置文件”当成同一个对象。 - 切换规则模式:回到首页,打开
Global Routing,选择Config。Proxy和Direct只能用于全局路径对照,不能代替配置文件中的规则。 - 先测一条规则:只新增一条明确的
DOMAIN或DOMAIN-SUFFIX规则,保存后重新加载配置并重新建立连接,再使用同一个域名测试。验证信号应分两层记录:第一层是是否按预期选择策略,第二层是该策略对应的连接是否成功。
停止条件:如果首页不是 Config、当前文件未启用,或你无法确认正在编辑哪个文件,先不要继续增加规则。
配置文件、[General]、[Rule] 和 FINAL 是什么关系
Shadowrocket 的配置文件不是只有规则列表。一个完整配置通常还会包含基础设置、代理或策略定义,以及分流规则等区段;但不同版本、不同订阅生成方式提供的字段可能不同。本文不猜测具体版本的全部字段,只解释排查时必须分清的层次。
| 部分 | 作用 | 排查重点 |
|---|---|---|
[General] | 放置配置的通用行为设置,例如 DNS 或其他基础选项;具体字段应以当前版本能识别的内容为准。 | 不要为了“补全结构”随意添加未确认字段。DNS 改动可能改变域名解析和 IP 规则的表现。 |
[Proxy] 或策略定义 | 提供代理节点、代理组或可供规则调用的策略名称。 | PROXY 不是自动生成的服务器;规则中的策略名称必须能在当前配置中找到对应定义。 |
[Rule] | 按照匹配条件选择 PROXY、DIRECT、REJECT 或其他已定义策略。 | 检查规则顺序、拼写、策略名称和当前文件是否一致。 |
FINAL | 处理没有命中前面普通规则的请求。 | 通常放在普通规则末尾;它不是固定必须使用 PROXY,也可以按需求使用 DIRECT。 |
下面是结构示例,不是完整可运行配置,也不能替代现有订阅:[General] → 通用设置;[Proxy] → 节点或策略定义;[Rule] → 匹配条件与策略;FINAL → 未命中请求的兜底策略。如果现有配置已经能够连接,优先在原文件上备份后做最小修改,不要为了展示结构而重写整个文件。
公开规则说明通常将规则写成“匹配类型、匹配值、策略”三部分,并强调具体规则应放在宽泛规则前。可参考 公开的 Shadowrocket 设置与规则说明,但该页面的菜单和字段不能自动证明适用于所有版本,仍应以设备当前界面和实际解析结果为准。
配置文件怎么导入、编辑、保存和重新加载
- 准备文件:优先使用你已经确认来源的配置文件或规则文件。Shadowrocket 的 App Store 功能说明列出 URL 和 iCloud Drive 导入规则文件的能力;如果只有服务器订阅链接,不要直接假设它就是可编辑的分流配置。
- 导入后确认:进入
Config,检查文件是否出现在列表中,再打开文件内容或规则视图,寻找[Rule]区段。若只有节点条目而没有规则区段,可能只是服务器信息,不能据此判断分流已经配置完成。 - 编辑前备份:先复制原配置、保留原文件或记录原始内容。第一轮只改一条规则,不要同时调整 DNS、IPv6、节点和 Global Routing。
- 保存或退出编辑:按设备当前界面提供的保存、完成或返回操作提交修改。Shadowrocket 的选项名称可能随应用版本变化,本文不对未核实的固定按钮位置作承诺。
- 重新加载配置:保存后重新打开当前配置,确认新增规则仍存在,并确认该文件仍是当前启用文件。如果订阅更新后规则消失,先判断是否被更新内容覆盖,再决定是修改订阅生成的配置,还是使用单独的本地规则文件。
- 重新建立连接:确认首页仍为
Global Routing → Config,然后关闭并重新开启连接开关。这里的“重新连接”只用于让新状态重新建立,不等于证明规则一定命中。
回滚方法:如果修改后多个目标同时异常,恢复备份文件,重新加载原配置,再只测试原本正常的目标。恢复原配置后仍失败,问题可能来自节点、网络、DNS 或目标服务,而不一定由规则改动造成。
DOMAIN、DOMAIN-SUFFIX、DOMAIN-KEYWORD、IP-CIDR 和 GEOIP 怎么选
| 规则类型 | 匹配对象 | 适用场景 | 注意事项 |
|---|---|---|---|
DOMAIN | 明确的单个域名 | 只处理一个确定主机名 | 不要误以为它会覆盖同一站点的全部子域名。 |
DOMAIN-SUFFIX | 域名后缀及其子域名 | 需要覆盖主域名和多个子域名 | 范围比 DOMAIN 宽,应放在更具体的例外规则后面。 |
DOMAIN-KEYWORD | 域名中包含指定字符串的请求 | 处理一组具有共同关键词的域名 | 范围更宽,可能匹配到并非目标站点的域名,使用前应缩小关键词。 |
IP-CIDR | IPv4 地址段 | 已知请求需要按 IPv4 地址段处理 | 它依赖请求是否已经以 IP 信息进入匹配流程,DNS 方式可能影响结果。 |
IP-CIDR6 | IPv6 地址段 | 需要处理 IPv6 目标或排查 IPv6 路径 | 只写 IPv4 规则不能自动覆盖 IPv6 流量。 |
GEOIP | 目标 IP 的地理数据库归属 | 做区域级别的兜底判断 | 数据库判断的是 IP 归属,不等于网站内容所在地,也可能与实际使用目的不完全一致。 |
这些规则类型和策略含义可在 公开的 Shadowrocket 功能与规则说明 中交叉查看。App Store 页面也明确列出域名匹配、CIDR IP 范围和 GeoIP 等能力。资料只能证明功能类型存在,不能替你判断某个具体域名应该使用哪种规则。
最小规则模板:指定域名、默认路径和拒绝规则
以下内容是规则片段示例,不是完整配置文件,不能单独复制替换整个订阅:
[Rule] DOMAIN,login.example.com,DIRECT;DOMAIN-SUFFIX,example.com,PROXY;GEOIP,CN,DIRECT;FINAL,PROXY
DOMAIN,login.example.com,DIRECT:只把明确的登录域名交给直连策略。DOMAIN-SUFFIX,example.com,PROXY:把该域名及其子域名交给代理策略。GEOIP,CN,DIRECT:对未被前面规则处理、且目标 IP 被数据库判断为对应区域的请求采用直连。FINAL,PROXY:其余未命中请求交给代理策略。若你的默认需求相反,也可以使用FINAL,DIRECT。
REJECT 用于阻止命中的请求,但被拒绝的请求可能表现为网页资源缺失、登录失败、通知不到达或应用功能不完整。因此不要一开始对大范围关键词使用 REJECT;先用一个明确域名测试,再观察具体功能是否受影响。
规则通常从上到下检查,首次匹配后不再把后面的规则当作替代方案。假如 DOMAIN-SUFFIX,example.com,PROXY 放在某条具体直连规则前面,后面的直连例外可能不会生效;如果 FINAL 提前出现,后续普通规则也可能无法参与匹配。
如何确认实际命中了哪条规则
- 固定测试目标:选择一个明确域名,不要一次测试多个网站、多个节点和多个网络。记录测试时间、当前配置文件、Global Routing 模式和目标域名。
- 确认规则状态:打开当前配置,检查新增规则仍存在、拼写正确、策略名称与配置中的定义一致,并确认规则没有被更早的后缀、关键词或规则集覆盖。
- 查看记录或诊断页面:在 Shadowrocket 的
Data、连接记录或诊断相关页面中,查找当前测试产生的请求和规则信息;不同版本的入口名称可能不同。若当前版本没有显示具体命中规则,就不能把“网页打开”当成命中证据。 - 做模式对照:暂时切到
Proxy测试同一目标,再切到Direct对照,最后恢复Config。若 Proxy 能打开而 Config 不能,优先检查规则顺序、当前文件和策略名称;若 Proxy 也不能打开,问题可能不在规则层。 - 分开记录结论:“规则选择正确”“代理路径建立成功”“目标网页可访问”是三个不同结果。只确认其中一个,不足以证明另外两个也正常。
可复现边界:如果没有日志、诊断结果或明确的版本界面,文章只能给出优先检查项,不能断言某一条规则已经命中。
规则不生效时,按 DNS、IPv6、GEOIP 和连接层排查
1. 域名规则和 IP 规则表现不同
DOMAIN、DOMAIN-SUFFIX 直接针对域名条件;IP-CIDR 和 GEOIP 针对 IP 地址或 IP 数据库判断。DNS 解析方式、缓存和配置中的 DNS 行为可能影响请求最终以哪种信息参与匹配。自查时先用同一个域名测试域名规则,再暂时移除或避开 IP 兜底规则,避免一次修改 DNS 和规则。
2. IPv6 可能与 IPv4 走不同路径
如果只配置了 IP-CIDR,而设备或目标使用 IPv6,IPv4 规则不能自动覆盖 IPv6 请求。Shadowrocket 的 App Store 说明列出 IPv6 支持,公开规则说明也区分 IP-CIDR 与 IP-CIDR6。排查时先观察目标是否存在 IPv6 连接,再检查是否需要对应的 IP-CIDR6 规则;不要为了“强制一致”直接改动所有 DNS 或关闭网络功能。
3. GEOIP 不是网站所在地判断
GEOIP 依赖 IP 地理数据库。网站使用 CDN、云服务或多地入口时,IP 归属可能与品牌所在地、用户语言或网页内容所在地不同。若 GEOIP 结果和预期不一致,先把它当作区域兜底规则测试,不要用它替代明确的域名规则。
4. REJECT 可能表现为功能缺失
拒绝规则不一定只表现为整页打不开,也可能是图片、登录、推送或接口失败。若添加 REJECT 后出现局部异常,先删除或缩小该规则范围,再用明确域名重新测试。不要同时更换节点和 DNS,否则无法判断是否由拒绝规则引起。
5. 节点故障与规则故障要分开
规则命中 PROXY 只说明选择了代理策略,不代表对应节点已经连通。临时使用 Proxy 模式做对照:如果仍不能访问,优先检查节点、协议、网络和 DNS;如果 Proxy 可用而 Config 不可用,再回到当前文件和规则顺序检查。
常见问题
Shadowrocket 订阅导入后,为什么还要设置分流规则?
服务器订阅和分流配置是不同层次。订阅可能只提供节点,也可能同时提供配置文件,但不能假设导入后已经启用适合你的规则。进入 Config 确认当前文件,再把首页 Global Routing 设置为 Config。
Global Routing 的 Config 和 Config 页面是同一个东西吗?
不是。首页 Global Routing → Config 是选择按规则分流的运行模式;底部或配置区域中的 Config 页面用于管理、选择或编辑配置文件。两者需要同时正确:文件要启用,运行模式也要选择 Config。
为什么规则已经写了,网页还是打不开?
规则命中与连接成功不是一回事。先确认当前文件、规则顺序和策略名称,再用 Proxy 模式测试同一目标。如果 Proxy 也失败,问题可能位于节点、协议、DNS、网络或目标服务。
DOMAIN 和 DOMAIN-SUFFIX 应该怎么选?
只处理一个明确主机名时使用 DOMAIN;需要覆盖主域名及子域名时使用 DOMAIN-SUFFIX。后缀规则范围更宽,应放在具体例外之后。
FINAL 必须写成 FINAL,PROXY 吗?
不必须。FINAL 只是兜底规则,最后使用 PROXY 还是 DIRECT 取决于你希望未命中请求采用哪条路径。通常把 FINAL 放在普通规则末尾。
修改配置后应该重新加载还是重新连接?
先保存并重新打开当前配置,确认规则没有消失;再确认该文件仍处于启用状态;最后重新建立连接测试。不同版本的重新加载入口可能不同,不能把关闭连接开关本身当成配置已重新加载的证明。
Shadowrocket 有没有按 App 名称直接分流的通用规则?
本文不把按 App 分流当作通用结论。能否按应用识别、识别哪些流量以及当前版本如何显示,应以设备实际功能和配置格式为准。若目标只是让某个域名走代理或直连,优先使用明确的域名规则。
结论:先确认四层,再逐条增加规则
Shadowrocket 分流规则设置可以按四层完成:第一层确认配置文件已经导入并启用;第二层把首页 Global Routing 设置为 Config;第三层按“具体规则在前、宽泛规则在后、FINAL 最后”编辑;第四层分别验证规则命中、代理策略连接和目标网页可用性。
截至 2026-11-01,Shadowrocket 的菜单名称和可用选项可能随应用版本变化。本文能够核验的是 App Store 列出的功能,以及公开规则说明中关于 Config、规则类型、策略和匹配顺序的描述;具体按钮位置、完整配置字段和某个订阅的生成方式,仍需以当前设备显示和实际文件内容为准。
本文为第三方使用指南,不代表 Shadowrocket 或任何节点服务的官方页面。
常见问题
Shadowrocket 订阅导入后,为什么还要设置分流规则?
服务器订阅和分流配置是不同层次。导入后仍要进入 Config 确认当前文件,并把首页 Global Routing 设置为 Config。
Global Routing 的 Config 和 Config 页面是同一个东西吗?
不是。Global Routing 中的 Config 是运行模式,Config 页面用于管理或编辑配置文件;文件启用和运行模式都要正确。
为什么规则命中后网页还是打不开?
规则命中只代表选择了某个策略,不代表节点连接成功。请用 Proxy 模式测试同一目标,再分别检查节点、协议、DNS 和网络。
DOMAIN 和 DOMAIN-SUFFIX 怎么选?
DOMAIN 适合一个明确域名,DOMAIN-SUFFIX 适合覆盖主域名及其子域名。后者范围更宽,应放在具体例外规则之后。
FINAL 必须设置为 FINAL,PROXY 吗?
不必须。FINAL 是兜底规则,使用 PROXY 还是 DIRECT 取决于未命中请求的默认路径,通常放在普通规则末尾。
修改后应该重新加载配置还是重新连接?
先保存并重新打开配置,确认规则仍存在且文件已启用;再重新建立连接测试。不同版本的菜单名称以当前设备显示为准。
相关阅读
参考资料
- Shadowrocket App Store 应用说明
- Shadowrocket 设置与规则公开说明(shadow-help.com)