2026-09-11 · 规则与分流 · 约 8 分钟

Shadowrocket 只让指定网站走代理:用 DOMAIN-SUFFIX 写分流规则

场景化示例:把少数站点写成 DOMAIN-SUFFIX,PROXY 规则,其余流量用 FINAL,DIRECT 兜底,并讲清规则顺序对匹配结果的影响。

本文速览

只让指定网站走代理,需要同时满足三个条件:Global Routing 选择 Config、目标域名命中 PROXY 规则、其余请求由 FINAL,DIRECT 兜底。本文适合已经有自己的服务商与可用连接配置的用户,按备份、编辑、启用、验证的顺序操作,并用域名例外说明规则为什么必须按顺序排列。

一、先确定范围:按域名分流,不是按网页地址分流

Shadowrocket(小火箭)的 DOMAIN-SUFFIX 匹配域名后缀。写入 example.com 后,可以覆盖这个域名本身以及 www.example.com、api.example.com 等子域名。它不是在浏览器地址栏里寻找一段文字,也不依赖网页标题。

如果目标是整个站点及其子域名,使用 DOMAIN-SUFFIX;如果只允许一个确定的主机名走代理,使用 DOMAIN。不要把 https://、路径、查询参数或端口号填进域名字段。例如访问 https://example.com:443/account 时,域名字段仍然只写 example.com。

规则会匹配不会匹配
DOMAIN,example.com,PROXYexample.comwww.example.com
DOMAIN-SUFFIX,example.com,PROXYexample.com 及其子域名badexample.com
DOMAIN,api.example.com,DIRECTapi.example.comwww.example.com

所有示例域名均为语法说明,不代表可用的代理服务。规则只决定请求交给哪一种策略,不会生成连接参数,也不会让不可用的代理恢复连接。

二、先备份,再在 Config 中写入最小规则

开始前,在 Home 确认已有可用的代理配置。若连接参数来自用户已有的订阅,先完成必要的更新,再确认当前选中的代理可以连接。编辑规则与更新订阅是两件事:前者改变请求走向,后者通常用于更新连接信息。

  1. 保留原配置。进入 Config,先通过配置操作保留副本或导出备份,记住原来正在使用的配置,便于恢复。
  2. 打开准备使用的配置。在 Config 中进入对应配置的编辑界面,找到规则部分。若使用文本编辑,定位 [Rule]。
  3. 整理已有规则。检查是否已有 FINAL、较宽泛的域名规则或指向其他策略的规则。不要只把新规则追加到原有兜底规则之后。
  4. 保存并启用。保存修改,在 Config 中确认启用的是刚编辑的配置,而不是名称相近的另一份文件。

最小示例只需要两条规则。下面是配置文件的规则片段,不是完整连接配置;应放入现有配置的规则部分,不要用它覆盖整个文件。

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

第一行规则把 example.com 及其子域名交给 PROXY;最后一行把没有命中前面规则的请求交给 DIRECT。其中 PROXY 使用当前代理选择,DIRECT 表示直接连接目标。若原配置使用自定义策略组,应另行核对策略组名称与实际选项,不要把不存在的名称填进规则。

三、Global Routing 选 Config,才能执行这套规则

返回 Home,打开 Global Routing 并选择 Config,随后开启连接。这里决定的是全局处理姿态:选择 Proxy 不等于“只代理规则里的网站”,选择 Direct 也不会执行本文的指定站点代理目标。

姿态处理方式本场景如何选择
Config按当前启用配置中的规则决定策略。使用此项验证本文规则。
Proxy以代理作为全局处理方式。不用于验证“其余直连”的规则效果。
Direct以直接连接作为全局处理方式。不用于验证指定域名的 PROXY 规则。
Scene按已配置的场景决定处理方式。初次排查先用 Config,减少场景切换带来的变量。

Settings → On Demand 控制按条件自动建立连接的行为,不是网站名单的编辑入口。即使已经设置 On Demand,仍要核对当前配置、Global Routing 和代理选择。自动建立连接与连接后如何分流属于不同层面的设置。

四、例外规则放前面,FINAL 放最后

规则按顺序匹配,命中后采用对应策略。假设整个 example.com 都要走代理,但 assets.example.com 必须直连,那么更具体的例外应放在宽泛后缀规则之前。否则资源域名会先命中后缀规则,后面的例外没有机会生效。

[Rule]
DOMAIN,assets.example.com,DIRECT
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
3 条
本例规则:精确例外、域名后缀、最终兜底
2 种
本例策略:PROXY 与 DIRECT
1 条
保留在规则末尾的 FINAL

结论:先写例外,再写范围,最后写兜底

遇到某个子域名走向不对,先把它与上方规则逐条比对;优先修正规则顺序,不要立即更换协议或重建连接配置。

同样需要留意已有的 GEOIP 与 IP-CIDR 规则。它们针对 IP 范围或地理归属匹配,不等同于网站域名名单;IP 类规则与 DNS 解析相关设置也会影响匹配条件。要实现严格的“名单内代理、名单外直连”,应逐条审查所有可能指向代理的旧规则,而不是仅把末尾改成 FINAL,DIRECT。

五、用三类请求验证,不把延迟测试当分流结果

保存后重新建立连接,并让测试页面发起新请求。浏览器已经建立的连接可能继续复用,页面缓存也可能让刷新没有产生预期的新请求。可以关闭原标签页后重新打开,再到应用内连接记录核对目标主机与实际策略。

测试对象预期命中规则预期策略
www.example.comDOMAIN-SUFFIX,example.com,PROXYPROXY
assets.example.comDOMAIN,assets.example.com,DIRECTDIRECT
不属于名单的实际测试域名FINAL,DIRECTDIRECT

表格描述的是示例配置的预期结果,不是对示例域名的实测报告。实际验证时请换成自己需要访问的域名。延迟测试只能帮助判断所选代理的连接情况,不能证明某一次网页请求命中了哪条规则;分流是否正确,应以该请求的主机、匹配规则与策略记录为依据。

一个页面往往不止访问一个域名。正文可能来自主站,登录、图片、脚本或媒体来自其他域名。如果只有图片加载失败,先查失败请求实际访问的主机,再决定是否补充规则。不要因为某个资源失败,就把整个网络改成 Proxy。

  1. 记录失败资源的完整主机名,不记录网页标题作为规则对象。
  2. 判断只需要匹配这个主机,还是需要覆盖它所属域名的全部子域名。
  3. 选择 DOMAIN 或 DOMAIN-SUFFIX,把新增规则放在 FINAL 前。
  4. 重新发起请求,确认策略变化,再判断资源是否恢复。

六、规则命中正确但访问失败,分开检查连接错误

“走错策略”和“策略正确但连接失败”不是同一种问题。先确认请求是否命中预期规则;如果已经命中 PROXY,再查看具体连接错误。以下是连接错误中可能出现的英文片段,实际显示内容以应用内记录为准。

报错:Connection refused

原因与解法:连接被目标端或中间设备明确拒绝;先从记录确认失败连接指向代理服务器还是网站,再核对对应地址、端口及服务状态,不要把拒绝连接直接解释成域名规则未生效。

报错:Operation timed out

原因与解法:连接在等待期限内未完成;先确认当前请求的策略,再分别检查所选代理可达性或目标网站的直接连接情况,并核对已有服务商提供的地址与端口。

如果同一目标通过 DIRECT 失败、通过 PROXY 成功,只能说明两条连接路径的结果不同,不能据此判断所有网站都需要代理。如果两种路径都失败,应继续检查域名解析、目标服务状态与网络环境,而不是反复增加重复规则。

为什么写了规则,其他网站也在走代理?

先在 Home → Global Routing 确认选择 Config,再到 Config 检查当前配置中的其他规则。若有更宽泛的 PROXY 规则,仍可能命中名单以外的请求;末尾的 FINAL,DIRECT 只处理前面没有命中的请求。

只想让一个子域名走代理,要写后缀吗?

如果只需要 api.example.com,写 DOMAIN,api.example.com,PROXY。若连同它下一级的子域名也需要覆盖,再考虑 DOMAIN-SUFFIX,api.example.com,PROXY;两者覆盖范围不同。

同一个网站只有登录页面打不开,怎么办?

重新触发登录请求,到连接记录检查登录服务实际使用的主机名。如果它不属于已配置的域名后缀,按需求添加独立规则;不要把登录 URL 的路径或查询参数填进 DOMAIN-SUFFIX。

更新订阅之后,为什么规则效果变了?

先在 Home 检查原来选择的代理是否仍存在且可用,再到 Config 核对当前启用文件。若同时更新了远程配置,还要对照备份检查规则是否被替换;恢复确认过的本地规则后,再重新测试。

最终检查顺序保持不变:启用正确配置、选择 Config、核对匹配范围与规则顺序、查看请求策略、排查连接错误。这样可以把配置问题与网络问题分开,每次只修改一个变量,避免修改后无法判断哪一步起了作用。

Shadowrocket 正版下载