月神云 - 全终端加速服务

Shadowrocket 怎么分流设置规则?Config、规则顺序与验证步骤

更新于 2026-11-04 · moontoday.store

简答:Shadowrocket 设置分流时,先打开 Home → Global Routing → Config,再确认 Config 页面选中了正确的配置文件。把更具体的规则放在宽泛规则前,把 FINAL 放在后面,保存后用连接记录或同一目标的 Proxy、Direct 对比确认是否命中。不同版本的菜单和编辑方式可能不同,本文以当前界面中能看到的名称为准。

定义:Shadowrocket 分流是根据当前配置文件中的规则,把不同域名、IP 或请求分别交给代理、直连、拒绝或其他策略处理。

先照做:Shadowrocket 分流设置三步速查

如果你已经添加了节点或订阅,但不知道网站为什么没有按预期直连或代理,先不要修改大量规则。按下面三步确认基础状态:

步骤操作位置需要确认的内容
1Home → Global Routing选择 Config,而不是暂时用于对比的 Proxy 或 Direct。
2Config当前启用的配置文件,确实是你准备查看或修改的文件。
3配置中的 [Rule]具体规则在前,宽泛规则在后,FINAL 作为最后的兜底。

Shadowrocket 的 App Store 页面将其描述为规则型代理工具,并说明它本身不包含代理服务器或订阅服务;因此,应用、节点信息、配置文件和分流规则是不同层次的内容。可查看Shadowrocket App Store 页面。公开说明页面也把 Config、Proxy、Direct 列为不同的路由选择,但菜单文字和编辑入口可能随版本变化,实际操作时应以设备上显示的界面为准。

  1. 打开 Shadowrocket,进入 Home。
  2. 点击 Global Routing,选择 Config。
  3. 进入 Config,确认启用的配置文件名称。
  4. 备份当前配置,再检查或编辑其中的 [Rule] 部分。
  5. 保存后重新发起一次新的访问请求,不要只观察已经打开的页面。
  6. 查看连接记录、数据记录或诊断信息,确认目标请求使用了哪条规则和策略。

先分清:节点、配置文件和规则分别做什么

分流设置最容易出错的地方,是把订阅链接、节点和规则文件当成一件事。它们解决的问题并不相同。

  • 节点或服务器:提供连接地址、端口、认证和协议等信息,解决“通过哪条连接访问”。
  • 订阅:通常用于获取或更新一组节点、服务器条目或相关配置内容,具体包含哪些部分要看提供方生成的文件。
  • 配置文件:是客户端当前读取的整体配置,可能包含通用设置、策略、规则和其他配置段。
  • 分流规则:通常位于配置中的 [Rule] 部分,解决“某个请求交给哪个策略处理”。
  • 策略名称:PROXY、DIRECT、REJECT 或自定义策略组必须已经在当前配置中存在,规则不会自动创建这些策略。

如果只测试直连或拒绝规则,不一定需要可用的代理节点;但要验证某个请求是否真正通过代理路径,通常还需要可用节点或可用策略组。连接开关显示已开启,也不能单独证明规则已经按预期命中。

需要特别区分两个名称相近的位置:Home 中的 Global Routing 是当前的整体路由模式,Config 页面则用于管理或选择配置文件。选择了某个配置文件,不代表 Global Routing 已经自动切换到 Config;两处都要检查。

可复制的最小规则模板:直连、代理与兜底

下面的内容是语法示例,不是完整配置文件。example.com、example.net 和 192.0.2.0/24 仅用于文档测试,不代表真实服务;访问结果还会受到 DNS、IPv6、节点状态和目标服务本身影响。

[Rule]
DOMAIN,example.com,DIRECT
DOMAIN-SUFFIX,example.net,PROXY
DOMAIN-KEYWORD,internal,DIRECT
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
FINAL,PROXY

逐行理解如下:

  • DOMAIN,example.com,DIRECT:匹配指定的完整域名,适合只控制一个主机名。
  • DOMAIN-SUFFIX,example.net,PROXY:匹配该域名及其子域名,适合一个站点包含多个子域名的情况。
  • DOMAIN-KEYWORD,internal,DIRECT:域名包含指定关键词时匹配,范围较宽,容易误匹配。
  • IP-CIDR,192.0.2.0/24,DIRECT,no-resolve:按 IPv4 网段匹配;no-resolve 的具体行为要结合当前版本和配置实现核对,不能简单理解为关闭所有 DNS。
  • FINAL,PROXY:前面的规则没有命中时,交给代理策略。兜底策略不一定必须是 PROXY,应按自己的需求填写。

如果你的配置使用自定义策略组,应把示例中的 PROXY 替换为配置中已经存在的策略名称。若策略名称写错,规则可能看起来已经匹配,但实际处理仍会失败或无法按预期连接。

关于 Global Routing、规则类型和配置文件结构,可以对照公开的 Shadowrocket 设置说明页面;该页面不是你当前配置的替代品,最终仍应以应用实际显示的策略和日志为准。

DOMAIN、DOMAIN-SUFFIX、DOMAIN-KEYWORD 怎么选

规则类型匹配范围适合场景主要注意点
DOMAIN一个精确域名只控制某个明确的主机名不会因为写了主域名,就自动覆盖所有子域名。
DOMAIN-SUFFIX域名后缀及相关子域名同一站点包含多个子域名范围比精确域名更宽,要避免把不想处理的服务一起纳入。
DOMAIN-KEYWORD域名中包含指定字符串临时匹配具有明显命名特征的一组域名误匹配风险较高,不建议随意使用宽泛关键词。
IP-CIDRIPv4 地址范围已知目标网段或按地址分流DNS 解析、IPv6 和应用连接地址都可能影响最终结果。
GEOIP按 IP 地理数据库结果匹配需要进行粗粒度地区分流不能把 IP 地区结果等同于域名后缀或网页语言。

新手通常可以先从 DOMAIN 或 DOMAIN-SUFFIX 开始。只有在明确知道匹配范围时,再使用 DOMAIN-KEYWORD。如果主页面能打开,但图片、登录接口或通知异常,可能是这些请求使用了其他子域名、接口域名或 CDN 域名,不要只给主页面域名添加一条规则就下结论。

规则顺序怎么排:具体规则在前,FINAL 在后

规则通常按照配置中的先后顺序检查,某个请求命中前面的规则后,后面的规则可能不会再参与判断。因此,规则顺序比规则数量更重要。

  1. 先放需要优先处理的精确域名规则。
  2. 再放覆盖范围较大的后缀、关键词、IP 或地区规则。
  3. 把例外规则放在会覆盖它的宽泛规则之前。
  4. 最后放 FINAL,处理没有命中前面规则的请求。

例如,你希望 api.example.com 直连,但同一配置又希望 example.com 及其子域名走代理,可以把精确规则放在后缀规则前面:

[Rule]
DOMAIN,api.example.com,DIRECT
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

反过来,如果先写 DOMAIN-SUFFIX,example.com,PROXY,精确域名的直连例外可能无法按预期执行。这里的示例只展示匹配逻辑,实际是否支持某个字段、策略名称如何定义,以及配置编辑方式,都应根据当前版本和文件内容核对。

修改订阅配置前怎么备份,避免更新后丢规则

订阅配置、手动配置和远程规则集的保存行为可能不同。不要假定所有版本都支持独立编辑副本,也不要认为保存一次就一定能抵抗后续订阅更新。更稳妥的做法是先备份,再做小范围修改。

  1. 记录当前启用的配置文件名称,并保留原始订阅或配置来源。
  2. 复制或导出原始配置,至少保存原来的 [Rule] 内容。
  3. 一次只增加一条或一组规则,方便判断是哪次修改导致变化。
  4. 保存后重新进入 Config,确认当前启用的仍然是修改后的文件。
  5. 更新订阅后,再检查自定义规则是否仍在。
  6. 如果规则消失,先恢复备份,再确认当前版本是否提供本地配置、编辑副本或远程规则集等独立管理方式。

如果页面没有明确显示“复制配置”“本地配置”或类似入口,不要把手动改动当成永久保存方案。可以先用一个测试域名验证保存结果,确认配置没有被覆盖后,再处理日常使用的规则。

规则不生效怎么办:按模式、配置、顺序、连接排查

情况一:开启连接后所有请求表现都一样。回到 Home → Global Routing,确认当前是 Config,而不是 Proxy 或 Direct。Proxy 和 Direct 可以用于对比测试,但它们不代表按配置文件中的每条规则分流。

情况二:改了规则,访问结果没有变化。先检查修改的文件是否为当前启用文件,再检查规则是否位于 FINAL 或其他宽泛规则之后。只保留一个测试域名和一条测试规则,减少同时变化的因素。

情况三:日志显示命中了规则,但网页仍打不开。规则命中只说明请求被交给某个策略,并不等于节点、DNS 或目标服务一定可达。检查该策略对应的节点或策略组,再用 Proxy 和 Direct 对同一目标进行对比。

情况四:主页面能打开,但图片、登录或通知异常。查看连接记录中实际出现的域名,检查是否遗漏子域名、接口域名或 CDN 域名,同时排查过宽的关键词规则、REJECT 规则和 IP 规则。

情况五:订阅更新后自定义规则消失。这通常需要先判断更新动作是否重新写入了远程配置。恢复备份后,检查当前版本是否支持独立编辑副本或单独的规则集;未核实具体界面前,不要假定所有版本的保存逻辑相同。

排查时建议一次只改变一个变量:先固定目标域名,再分别检查 Global Routing、配置文件、规则顺序、策略对应节点、DNS 和连接记录。这样比直接切换到全局模式后反复修改规则更容易定位问题。

最后做一次可复现的命中验证

  1. 准备一个明确的测试域名和一条精确规则,例如 DOMAIN,example.com,DIRECT。
  2. 确认该规则位于宽泛规则和 FINAL 之前。
  3. 在 Config 页面确认使用的是已修改的配置文件。
  4. 在 Home → Global Routing 中选择 Config。
  5. 开启连接,只访问该测试域名,不要同时测试多个应用或多个站点。
  6. 查看连接记录、数据记录或诊断信息,确认实际命中的规则和策略。
  7. 临时切换到 Proxy,再访问同一目标;然后切换到 Direct 做对比。
  8. 完成测试后恢复日常使用的 Config,并删除临时测试规则。

如果 Config、Proxy、Direct 三种模式的结果不同,继续检查规则、策略和节点;如果三种模式都失败,则优先检查 DNS、系统网络、节点状态或目标服务本身。仅凭页面是否打开,不能完整证明最终请求路径,因为 DNS、IPv6、缓存和页面中的附加请求都可能改变表现。

本文是第三方使用指南,不代表 Shadowrocket 官方页面;应用名称、菜单和配置字段请以当前设备中的实际界面及可核验资料为准。

常见问题

Shadowrocket 开启连接后,为什么分流规则没有生效?

先检查 Home → Global Routing 是否选择了 Config,再确认 Config 页面选中的文件就是你修改的文件。随后检查规则顺序,尤其是前面的宽泛规则或 FINAL 是否已经提前匹配。

Shadowrocket 的 Config、Proxy、Direct 有什么区别?

Config 按当前配置文件中的规则处理请求;Proxy 用于通过代理路径进行整体对比;Direct 用于测试直连路径。它们是路由模式,不是节点名称,也不等同于连接开关。

DOMAIN 和 DOMAIN-SUFFIX 应该怎么选?

只控制一个精确主机名时使用 DOMAIN;需要覆盖一个域名及其子域名时考虑 DOMAIN-SUFFIX。使用 DOMAIN-KEYWORD 前要确认匹配范围,否则可能误伤其他请求。

FINAL 规则应该放在哪里?

通常放在具体规则、例外规则和宽泛规则之后,作为没有其他规则命中时的兜底。FINAL 放得过早,后面的规则可能无法按预期参与判断。

规则命中了,但网页仍然打不开怎么办?

规则命中只代表请求被交给某个策略,不代表节点、DNS 或目标服务可达。检查策略对应的节点或策略组,再用 Proxy、Direct 对同一目标做对比测试。

更新订阅后,自定义分流规则消失怎么办?

先恢复更新前保存的配置,确认是否是订阅更新重新写入了远程配置。之后检查当前版本是否提供本地配置、编辑副本或远程规则集等独立管理方式,具体入口以应用界面为准。

为什么主页面能打开,但图片或登录功能异常?

主页面、图片、接口和通知可能使用不同域名。查看连接记录中的实际域名,检查是否遗漏子域名或接口域名,并排查过宽的关键词规则、REJECT 和 IP 规则。

相关阅读

参考资料

  1. Apple App Store:Shadowrocket 应用页面
  2. Shadowrocket 设置说明页面:Global Routing、规则类型与匹配顺序(shadow-help.com)
  3. Shadowrocket 配置与规则说明页面:Config、规则顺序和诊断思路(shadow-official.com)