小火箭只代理指定网站:DOMAIN-SUFFIX 规则与 FINAL,DIRECT 写法

需要只让少数网站走代理、其余直连时:用 DOMAIN-SUFFIX 列出目标域名,FINAL 设为 DIRECT,再选 Global Routing 的 Config 模式让规则生效。

本文速览

本文适合已经在 Shadowrocket(小火箭)中导入自己连接资料、希望仅让指定网站走代理的用户。按下文保留原配置、添加域名规则、切换 Config 并验证请求,可以建立一份“名单内代理、名单外直连”的配置。示例域名仅解释语法,不是可用的连接服务;本站不提供、不销售、不推荐节点或订阅。

先明确目标:按域名分流,不是按网页按钮分流

“只代理指定网站”应拆成两个判断:哪些请求属于目标网站,以及未命中的请求走哪里。Shadowrocket 在配置规则中按顺序匹配请求;本例把需要代理的域名放在前面,把 FINAL,DIRECT 放在最后。只要前面的规则没有命中,请求便落入直连策略。

一个网页通常不只连接地址栏中的域名。图片、登录、视频和静态脚本可能来自不同域名,因此“首页能打开但图片不显示”不一定是规则未生效,也可能是依赖域名没有列入名单。不要为了让一个页面完整加载,就直接加入覆盖范围过大的公共域名后缀。

2 类
策略结果:名单内 PROXY,名单外 DIRECT
1 条
末尾兜底:FINAL,DIRECT
443
HTTPS 常用端口,不填入域名规则字段

这里的 PROXY 表示代理策略,不是服务地址,也不会自动产生可用连接。开始前应确认 Home 中已有自己的可用服务器,并已选中用于本次验证的连接。客户端购买与线路服务是两件事。

最小规则:DOMAIN-SUFFIX 在前,FINAL,DIRECT 在后

下面是规则段示例,不是完整连接配置。把它作为编辑已有配置的参考,不要用这几行覆盖整份文件,否则可能丢失 DNS、通用设置和其他必要内容。实际使用时,将示例域名替换为需要匹配的真实域名。

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

DOMAIN-SUFFIX,example.com,PROXY 匹配 example.com 本身,以及 www.example.com、media.example.com 等子域名;它不匹配 notexample.com。域名字段不要写协议头、路径、端口或通配符星号,https://example.com/video 不是这里需要的字段格式。

写法匹配范围适用目标
DOMAIN,login.example.com,PROXY仅该完整主机名只代理登录入口
DOMAIN-SUFFIX,example.com,PROXY根域名及其子域名代理整个域名体系
FINAL,DIRECT此前所有规则均未命中的请求让其余请求直连

结论:先用最小域名范围验证

只需要一个主机名时先用 DOMAIN;确实需要根域名及全部子域名时再用 DOMAIN-SUFFIX。验证成功后再补充依赖域名,避免一次扩大范围后无法定位是哪条规则改变了结果。

在 Config 保存配置,再到 Home 选择 Config

编辑前先保留原配置副本,以便恢复。已有配置若包含其他域名规则、规则集或较宽泛的代理规则,单纯在末尾补一条 FINAL,DIRECT 并不等于“只代理指定网站”:前面已经命中的请求不会再继续走到末尾。应先检查整段规则,而不是只看最后一行。

  1. 保留原配置

    进入 Config,找到当前使用的配置,先保留副本或导出备份。确认本次编辑的是之后要选中的文件,不要同时修改多份配置。

  2. 编辑规则段

    打开该配置的编辑入口,检查 [Rule]。将目标 DOMAIN 或 DOMAIN-SUFFIX 规则放在 FINAL 前面,核对逗号、域名和策略名称。

  3. 检查兜底

    以 FINAL,DIRECT 作为末尾规则,并检查前面的规则是否还会把其他网站送往 PROXY。保存后在 Config 选中这份配置。

  4. 切换模式

    返回 Home → Global Routing,选择 Config。回到 Home 核对当前服务器选择,并开启连接;首次连接按系统提示允许添加 VPN 配置。

  5. 重新发请求

    关闭旧页面后重新打开,分别访问名单内和名单外网站。修改配置前已经建立的连接不能作为新规则的验证依据,必要时断开后重新连接。

这里需要的是 Home → Global Routing → Config,而不只是“在 Config 页面看到了文件”。前者决定当前是否按规则处理流量,后者负责管理配置。文件保存、文件选中、模式选对是三个不同检查点。

Global Routing、规则顺序与 On Demand 的分工

如果所有网站都走代理,先查模式,再查规则。Global Routing 的 Proxy 与 Direct 是整体路由姿态,不会按本文这份域名名单产生同样的分流结果。Scene 用于场景化选择;初次验证时直接明确选择 Config,减少场景切换带来的变量。

设置项主要职责本例处理方式
Global Routing → Config按当前配置规则决定策略选择此项验证名单
Global Routing → Proxy整体使用代理路由姿态不用于验证名单外直连
Global Routing → Direct整体使用直连路由姿态不用于验证名单内代理
Global Routing → Scene按场景设置选择路由行为先排除场景切换影响
Settings → On Demand管理按需连接条件与域名匹配分别检查

On Demand 处理何时建立连接,不负责替代 DOMAIN-SUFFIX 判断网站归属。若手动断开后又自动连接,可到 Settings → On Demand 核对条件;若某个网站走错策略,则应检查 Config 中的规则与当前路由模式,不能把两个层级混在一起排查。

验证结果:区分规则命中、DNS 与服务器可用性

网页能打开不等于它一定经过代理,网页打不开也不等于规则没有命中。验证时保持同一网络、同一服务器和同一份配置,只改变一项设置。可用连接记录中的目标主机、命中规则及策略信息核对路径;具体可见字段以当前界面为准。DNS 查询使用的路径与网页连接的策略也不能简单画等号。

以下是网络请求可能返回的系统错误原文,不是规则编辑器的语法提示,也不代表每次都会在 Shadowrocket 中以同样形式显示。遇到它们时,先确定失败发生在哪个请求、使用哪条策略,再调整配置。

报错:The request timed out.

原因与解法:请求没有在时限内完成,可能涉及网络、目标站或代理连接;先核对该请求是否命中预期策略,再用 Home → Connectivity Test 检查所选服务器,避免直接扩大代理名单。

报错:A server with the specified hostname could not be found.

原因与解法:主机名解析失败或域名拼写有误;先核对访问地址与配置域名,再检查当前配置中的 DNS 设置,DOMAIN-SUFFIX 本身不能修复解析失败。

若应用直接连接 IP、复用已有连接,或实际请求主机与预期不同,域名规则可能没有获得你以为会出现的匹配条件。此时应根据连接记录定位,不要为了“强制命中”就随意添加大段 IP-CIDR。需要进一步检查 DNS 时,可阅读技术参考中的 DNS 说明。

常见问题:子域名、订阅更新与恢复原状

只想代理一个子域名,怎么写?

例如只处理 login.example.com,写 DOMAIN,login.example.com,PROXY,再保留末尾的 FINAL,DIRECT。若使用 DOMAIN-SUFFIX,example.com,PROXY,则根域名及其他子域名也会进入代理范围。

为什么加完规则还是所有网站都走代理?

先到 Home → Global Routing 确认选择 Config,而不是 Proxy;再回到 Config 确认选中了修改后的文件。最后从上到下检查是否存在更早命中的广泛代理规则或规则集。

订阅刷新会把这些规则改掉吗?

连接订阅与配置文件应分开看待。更新服务器订阅不能代替编辑 [Rule];若更新的是远程配置,本地修改可能被新内容覆盖。保留自己的配置副本,并在每次更新远程配置后重新核对规则和选中状态。

名单外 DIRECT,是不是关闭了 VPN?

不是。DIRECT 是连接启用时的路由策略,不等于关闭系统 VPN 配置。若要停止本次连接,在 Home 关闭连接,并检查 Settings → On Demand 是否配置了自动连接条件。

改完无法正常使用,怎样恢复?

回到 Config 选择之前保留的配置,再按原来的 Global Routing 设置重新连接。恢复后先验证原有访问,再逐条添加目标域名;每次只改一项,便于找到造成变化的规则。

最终检查只需抓住四项:当前文件正确、Global Routing 为 Config、目标域名规则位于前面、FINAL,DIRECT 位于末尾。之后再逐个核对网页依赖域名,才能在保持名单范围清晰的同时,避免把页面加载问题误判为整个分流机制失效。

App Store 正版核验