Shadowrocket规则分流怎么设置?按域名直连与代理的配置教程

Shadowrocket 规则分流可以按域名决定连接走直连还是代理。本文讲解如何选择配置路由、检查规则列表、添加域名规则并验证匹配结果,帮助新手避免规则顺序冲突和流量设置错误。

Shadowrocket 的规则分流由当前启用的配置决定:连接请求按规则顺序逐条匹配,命中后使用对应策略,例如 DIRECT 直连或 PROXY 代理。设置前要先确认 Home → Global Routing 选择了 Config,并确认编辑的是当前使用的配置;只添加规则但未启用对应配置,分流结果不会按预期变化。

本文速览

本文适合已经导入自己的服务器或订阅、准备按域名设置直连与代理的 Shadowrocket 用户。你将了解 Config 路由的前提、域名规则的写法、规则顺序和策略名称的检查方法,并通过单一域名测试验证结果。示例域名仅用于说明语法,不是可连接的服务地址;订阅链接从你的服务商处获取。

一、先确认 Config 路由与当前配置

规则要生效,首先要让流量经过配置规则。在 Home 查看 Global Routing,选择 Config;如果选中的是 Proxy,流量会按代理姿态处理,不能据此判断某条 DIRECT 规则是否命中;如果选中 Direct,也不能用来验证某条 PROXY 规则。Scene 则还受场景设置影响,排查时应先确认当前场景条件。

接着打开 Config,确认正在使用的配置文件。设备上可能保存多个配置,改动一个文件并不代表另一个正在启用的文件也发生变化。建议记下配置名称,检查完成后返回 Home,再核对 Global Routing 仍为 Config。Home 中选中的服务器与规则策略也不是同一项:规则可以指向代理策略或策略组,实际出站还取决于该策略当前的选择。

Global Routing流量处理方式能否验证域名规则
Config按当前配置的规则与策略处理可以,本文操作以此为前提
Proxy采用代理路由姿态不适合判断某条规则是否选了 DIRECT
Direct采用直连路由姿态不适合判断某条规则是否选了 PROXY
Scene根据已设置的场景条件应用路由行为先检查场景设置,避免混淆验证结果

测试前核对

路由姿态
Home → Global Routing → Config
配置文件
Config 中确认当前使用项
代理策略
确认 PROXY 或目标策略组可用

先确认配置处于使用状态,再判断规则是否正确。

策略含义

DIRECT
直接连接目标,不经代理服务器
PROXY
交给代理出站处理
FINAL
作为未命中前序规则时的兜底

规则中的策略名称必须与配置可用的策略一致。

二、用域名规则指定直连或代理

域名规则的匹配对象是主机名,不是完整网页地址。添加规则时不要附加 https://、端口、路径或查询参数。比如要匹配 api.example.com,就填写主机名;写成带有 /v1/list 的网址并不能让规则只匹配该页面路径。

DOMAIN 用于匹配一个完整域名;DOMAIN-SUFFIX 用于匹配指定域名本身及其下级子域名。后缀匹配有域名边界,因此 DOMAIN-SUFFIX,example.com,DIRECT 会匹配 example.com 和 www.example.com,但不会匹配 notexample.com。如需只匹配一个具体主机名,使用 DOMAIN 更明确。

DOMAIN,api.example.com,PROXY
DOMAIN-SUFFIX,example.com,DIRECT
DOMAIN-SUFFIX,media.example.net,PROXY
FINAL,DIRECT

这段示例表示:api.example.com 先命中第一行,交给 PROXY;www.example.com 不匹配第一行,继续匹配后缀规则并走 DIRECT;media.example.net 走代理;其他未命中的请求使用最后一行的 DIRECT。这些示例域名只用于解释行为,不代表实际服务或线路。

注意,规则末尾的策略名不是随手填写的备注。若配置中没有对应策略,或策略组尚未选定可用出站,规则即使匹配正确,也可能无法按预期连接。若使用自定义策略组名称,先确认它已存在于当前配置中,再将规则指向该名称。

三、在当前配置中添加规则并保存

以下流程以在现有配置中编辑规则为例。应用界面文字或编辑入口可能随当前版本与配置类型略有差异;操作目标是找到正在使用的 Config、进入规则列表、将新规则放到合适位置并保存。编辑前可复制配置作为备份,避免误删已有规则。

  1. 确认配置

    打开 Config,识别当前使用的配置文件。若列表中有多个相似名称,先核对正在启用的项目,不要直接编辑一个仅名称相近的副本。

  2. 进入规则

    打开该配置的编辑界面,找到规则列表或对应规则区域。若配置由订阅提供且无法直接编辑,先确认应用界面是否允许对该配置进行本地修改;不要把订阅链接粘贴进规则文本框。

  3. 填写规则

    按“类型、匹配内容、策略”的顺序添加一行,例如 DOMAIN-SUFFIX,example.com,DIRECT。规则类型、域名和策略之间使用英文逗号,避免混入中文逗号或域名前后的空格。

  4. 调整顺序

    将范围更具体的例外放在可能覆盖它的宽泛规则之前,并把 FINAL 放在兜底位置。检查前后规则是否已经匹配同一个域名,避免新规则被前面的宽泛条件提前截获。

  5. 保存并复核

    保存配置后返回 Home,确认 Global Routing 为 Config。再回到 Config 检查刚才的规则仍存在,并确认策略名称与当前配置中的策略一致。

四、检查优先顺序,避免宽泛规则遮住例外

规则按列表从上向下检查,通常在首次匹配后就采用对应策略,不会继续寻找后面的“更精确”规则。因此,若要让某个子域名走代理、其余主域名及子域名直连,应把子域名的精确规则放在后缀规则之前。

DOMAIN,api.example.com,PROXY
DOMAIN-SUFFIX,example.com,DIRECT
FINAL,PROXY

如果把 DOMAIN-SUFFIX,example.com,DIRECT 移到第一行,api.example.com 会先被它匹配,后面的精确代理规则就没有机会生效。相同原则也适用于其他规则类型:先放具体例外,再放覆盖范围更大的规则,最后用 FINAL 处理剩余请求。

结论:用“例外在前、范围在后”检查顺序

添加规则后,不只检查新行本身,还要从列表顶部开始追踪测试域名会遇到的第一条匹配项。若宽泛规则先命中,调整顺序通常比继续添加重复规则更直接。

顺序情况测试域名实际命中与结果
精确 DOMAIN 在前api.example.com先命中 DOMAIN,走 PROXY
后缀规则在前api.example.com先命中 DOMAIN-SUFFIX,后面的精确规则不再决定结果
未命中前序规则other.test继续检查,最终由 FINAL 兜底

域名规则也有边界:同一个网站可能从多个主机名加载页面、接口、图片或媒体内容。只为主页面域名设置代理,不一定覆盖所有相关请求。发现页面部分内容加载失败时,先记录失败请求使用的主机名,再按实际需要添加规则;不要为了一个问题直接把范围扩展到整个宽泛域名集合。

五、按测试域名验证结果并排查常见问题

验证时一次只测试一个目标域名,并保留当前配置和服务器选择不变。先确保连接已建立,再通过浏览器访问目标;如果应用提供对应的请求或连接记录,可检查该请求对应的域名与策略。Connectivity Test 可用于检查连通情况,但它本身不能证明某个特定域名命中了预期规则。测试前后若同时更换路由姿态、服务器和规则,就难以判断是哪项变化影响了结果。

加了规则,访问还是走错策略?

先确认 Home → Global Routing 为 Config,再从规则列表顶部检查该域名最先命中的规则;同时确认编辑的是当前启用的配置。

域名规则里要写完整网址吗?

不需要。填写主机名,不加协议头、路径、端口或查询参数;只匹配一个主机名时可用 DOMAIN,覆盖主域名及其子域名时可用 DOMAIN-SUFFIX。

为什么首页打开了,图片却加载失败?

页面资源可能来自其他主机名。检查失败请求实际使用的域名,再决定是否为该域名增加规则;不要仅凭主页面地址推断所有资源都匹配同一条规则。

配置有规则,但切到 Direct 后结果变了?

Direct 是全局路由姿态,不适合验证配置中的 PROXY 规则。切回 Home → Global Routing → Config,再使用同一个目标域名重新测试。

如果规则已按预期命中但目标仍不可访问,继续区分策略与连接问题:检查 PROXY 对应的服务器或策略组是否可用,并确认基础网络正常;如果规则根本没有命中,则优先核对域名拼写、规则顺序、配置是否启用以及请求是否以域名信息参与匹配。需要进一步了解配置管理时,可查看使用教程。

App Store 正版获取核对开发者与应用 ID