Shadowrocket 规则怎么选择?从总体模式到匹配类型的完整判断
简答:Shadowrocket 规则选择,建议按“总体路由模式→规则匹配范围→请求记录验证”处理。日常需要按域名分流时,优先检查当前配置文件并选择 Config;Proxy 和 Direct 更适合临时对比代理路径与直连路径。单个完整域名用 DOMAIN,域名及其子域名用 DOMAIN-SUFFIX,只有确实需要按字符串范围匹配时才考虑 DOMAIN-KEYWORD。
定义:Shadowrocket 规则是由“匹配条件”和“处理策略”组成的分流条件,用来决定某类请求走代理、直连或拒绝;具体菜单名称和行为应以当前版本界面及配置文件为准。
先看这张表:Shadowrocket 规则到底怎么选
本文为第三方使用指南站内容,不代表 Shadowrocket 官方。Shadowrocket App Store 产品页确认其支持按域名、域名后缀、域名关键词、CIDR IP 范围和 GeoIP 等条件配置规则,也支持查看 HTTP、HTTPS 与 DNS 请求。可核对 App Store 产品页
| 你想解决的问题 | 优先检查或选择 | 原因 |
|---|---|---|
| 日常按不同网站分流 | Config | 需要由当前配置中的规则决定不同请求的处理方式;同时要核对配置文件是否已选中。 |
| 临时判断代理路径是否可用 | Proxy | 用于和 Config 结果对比,但不能据此证明某一条规则已经命中。 |
| 判断当前网络能否直连 | Direct | 用于对比直连路径;直连失败不等同于配置规则错误。 |
| 只匹配一个完整域名 | DOMAIN | 匹配范围最窄,适合明确的单一域名例外。 |
| 匹配一个域名及其子域名 | DOMAIN-SUFFIX | 适合主域名下存在多个子域名的场景。 |
| 按域名中是否包含某个字符串 | DOMAIN-KEYWORD | 范围更宽,误匹配风险也更高,不能把它当作 DOMAIN-SUFFIX 的同义写法。 |
最短路径:先确认连接开关已开启,再进入 Home 查看 Global Routing;需要按规则分流时检查是否为 Config,随后确认 Config 页面中选中了预期文件,最后访问一个明确的网址并查看请求记录。
Config、Proxy、Direct:先分清“模式”和“规则”
Config、Proxy、Direct属于总体路由选择;PROXY、DIRECT、REJECT则通常是规则匹配后的处理策略。两组词看起来相似,但不要把 Global Routing 里的 Proxy 直接理解成某条规则已经使用了 PROXY。
- Config:适合日常分流。前提是当前配置文件确实包含可用规则,并且规则引用的策略名称在配置中存在。若当前版本没有显示某个菜单或字段,应以实际界面为准。
- Proxy:适合做临时对比测试,例如同一个网址在 Config 失败时,切换到 Proxy 检查代理路径是否能访问。测试结果只能说明两种模式的表现不同,不能单独证明哪条规则命中。
- Direct:适合对比当前网络的直连结果。如果 Direct 失败,可能与本地网络、DNS 或目标站点有关;如果 Proxy 成功而 Direct 失败,说明两条路径的结果不同,但仍需结合请求记录判断。
测试时尽量保持同一设备、同一网络和同一网址,并在切换模式后重新发起请求,不要只观察已经打开的页面。
DOMAIN、DOMAIN-SUFFIX、DOMAIN-KEYWORD 怎么选
| 规则类型 | 匹配范围 | 适合场景 | 常见误区 |
|---|---|---|---|
DOMAIN | 一个明确的完整域名 | 只想处理某个固定主机名 | 以为它会自动覆盖所有子域名 |
DOMAIN-SUFFIX | 主域名及其子域名 | 同一站点有多个子域名 | 没有确认域名边界就扩大匹配范围 |
DOMAIN-KEYWORD | 域名中包含指定字符串 | 确实需要较宽泛的关键词匹配 | 关键词过短,导致不相关域名也被匹配 |
例如,假设你只想处理 mail.example.com,可以先考虑 DOMAIN;如果希望覆盖 mail.example.com、api.example.com 等子域名,再考虑 DOMAIN-SUFFIX。如果使用 DOMAIN-KEYWORD,example,匹配范围可能明显更宽,应该在请求记录中检查是否误命中。
示例中的 example.com 只是语法演示,不代表可用服务地址。Shadowrocket 的 App Store 说明确认了这些域名匹配能力,但具体配置中的策略名称、规则来源和排序仍要看你当前导入的配置文件。查看 App Store 对规则能力的说明
IP-CIDR、GEOIP、RULE-SET 和 FINAL 什么时候用
- IP-CIDR:按 IPv4 地址段匹配,适合规则明确给出网段的情况。域名请求是否能被 IP 规则匹配,还可能受 DNS 解析方式影响,因此不要只改规则而忽略 DNS。
- GEOIP:按目标 IP 的地理数据库信息判断,不是按网页语言、域名后缀或你所在位置判断。数据库或解析结果变化时,实际匹配也可能变化。
- RULE-SET:引用外部规则列表。使用前应确认列表地址可访问、格式与当前客户端兼容,并留意远程规则更新后内容可能发生变化。
- FINAL:作为前面规则都没有匹配时的兜底处理。通常应把更具体的例外放在它前面;如果把兜底规则放得过早,后面的规则可能无法按预期参与判断。
配置样例资料通常把规则写成“类型、匹配值、策略”三部分,例如 DOMAIN-SUFFIX,example.com,PROXY。这类写法只能作为语法参考,不能说明你的配置一定存在名为 PROXY 的策略组;策略名称必须在当前配置的策略列表中核对。查看公开配置样例及规则字段参考
只让一个网站直连或走代理:可照做的操作顺序
- 先备份当前配置文件,避免调整后无法恢复。
- 确认你要处理的是完整域名、主域名及子域名,还是更宽泛的关键词。
- 只处理一个完整域名时,优先使用
DOMAIN;要覆盖同一主域名下的子域名时,优先考虑DOMAIN-SUFFIX。 - 为规则选择现有的策略名称,例如配置中已经存在的代理策略或直连策略;不要凭空填写未在策略列表中出现的名称。
- 将更具体的规则放在更宽泛的规则之前,并确认兜底规则没有提前截断后续判断。
- 返回 Home,在 Global Routing 中选择 Config,然后重新访问目标网址。
- 打开请求记录,核对实际请求的主机名、命中的规则或策略,以及是否出现额外的 DNS 请求。
如果你只是想验证代理路径,不要马上改规则:可以先临时切换 Proxy 测试同一个网址;如果想确认当前网络能否直连,再切换 Direct。测试完成后恢复原来的路由模式。
规则已命中但网页仍打不开:按这个顺序排查
| 现象 | 先查什么 | 下一步 |
|---|---|---|
| 请求记录里没有目标域名 | 连接开关、系统 VPN 权限、请求是否真的发出 | 重新连接并用新页面或重新加载动作发起请求。 |
| 目标域名出现,但策略不是预期策略 | Global Routing 是否为 Config、规则顺序、匹配范围 | 比较 DOMAIN、DOMAIN-SUFFIX 和 DOMAIN-KEYWORD 的覆盖范围。 |
| 策略名称在规则里,但配置列表找不到 | 当前配置是否完整、远程配置是否更新 | 在策略列表和配置文本中核对名称;不要把推断当作固定行为。 |
| Proxy 能访问,Config 不能访问 | 实际命中的规则、策略目标和 DNS | 先记录两种模式的请求结果,再只修改一个变量复测。 |
| 规则命中且策略正确,但仍打不开 | 节点连接、DNS、TLS 或目标站点响应 | 用同一网址比较 Proxy、Direct,并查看连接测试和请求记录。 |
| 更新订阅或远程配置后规则消失 | 规则是否属于远程文件、更新是否覆盖本地修改 | 备份配置;确认自定义规则应写入哪个文件,再更新并重新检查。 |
上表是通用排查框架,具体字段、记录名称和菜单位置可能随当前版本、设备和配置文件实现变化。App Store 页面能确认 Shadowrocket 提供请求记录与多类规则能力,但不能替你的配置文件证明某条规则一定会命中。以当前 App Store 与设备界面为准
常见问题
Shadowrocket 日常使用应该选 Config 还是 Proxy?
如果你需要不同域名使用不同处理方式,优先检查配置文件并选择 Config;如果只是临时判断代理路径是否可用,可以用 Proxy 做对比。Proxy 测试成功不代表 Config 中的规则没有问题,仍需查看请求记录和实际策略。
DOMAIN 和 DOMAIN-SUFFIX 哪个更适合新手?
只处理一个明确的完整域名时用 DOMAIN;希望覆盖该主域名及其子域名时用 DOMAIN-SUFFIX。不能因为名称相似就互换,选择前先确定你需要的匹配范围。
DOMAIN-KEYWORD 为什么容易误匹配?
因为它按域名中是否包含指定字符串判断。关键词越短,潜在匹配范围通常越宽。使用后应通过请求记录确认实际命中的域名,必要时改用 DOMAIN 或 DOMAIN-SUFFIX 缩小范围。
规则顺序为什么重要?
配置通常会按顺序检查规则,因此更具体的例外应放在更宽泛的规则前面,兜底规则应放在需要处理的规则之后。若当前配置文件或版本对顺序有特殊实现,应以实际配置说明和请求记录为准。
规则已经命中,为什么还是打不开?
命中只说明匹配条件和策略判断完成,不等于节点、DNS、TLS 或目标站点一定可用。建议依次比较 Config、Proxy、Direct 三种测试结果,并检查连接状态、DNS 请求和目标域名。
配置更新后自定义规则不见了怎么办?
先恢复备份,再确认自定义规则属于本地配置、远程配置还是远程规则集。更新后要重新检查当前激活的配置文件和规则列表,不要把一次更新结果推断为所有版本都会如此。
常见问题
Shadowrocket 日常使用应该选 Config 还是 Proxy?
需要按规则分流时优先选择 Config;只想临时测试代理路径时使用 Proxy。测试结果仍需结合请求记录和实际策略判断。
DOMAIN 和 DOMAIN-SUFFIX 有什么区别?
DOMAIN 适合一个明确的完整域名,DOMAIN-SUFFIX 通常用于覆盖主域名及其子域名。先确定需要的匹配范围,再选择类型。
DOMAIN-KEYWORD 为什么容易误匹配?
它按域名中是否包含指定字符串判断,关键词过短时范围会变宽。使用后应查看请求记录确认实际命中的域名。
规则命中后网页仍打不开怎么办?
先确认策略名称、节点连接和 DNS,再用同一网址比较 Config、Proxy、Direct 三种结果;不要只根据“已命中”判断链路一定正常。
远程配置更新后自定义规则消失怎么办?
先恢复备份,确认规则属于本地配置还是远程配置,再检查当前激活文件和远程规则集内容。具体覆盖行为需以当前版本和配置实现为准。