本文适合已经在 Shadowrocket(小火箭)中导入自己连接资料、希望仅让指定网站走代理的用户。按下文保留原配置、添加域名规则、切换 Config 并验证请求,可以建立一份“名单内代理、名单外直连”的配置。示例域名仅解释语法,不是可用的连接服务;本站不提供、不销售、不推荐节点或订阅。
先明确目标:按域名分流,不是按网页按钮分流
“只代理指定网站”应拆成两个判断:哪些请求属于目标网站,以及未命中的请求走哪里。Shadowrocket 在配置规则中按顺序匹配请求;本例把需要代理的域名放在前面,把 FINAL,DIRECT 放在最后。只要前面的规则没有命中,请求便落入直连策略。
一个网页通常不只连接地址栏中的域名。图片、登录、视频和静态脚本可能来自不同域名,因此“首页能打开但图片不显示”不一定是规则未生效,也可能是依赖域名没有列入名单。不要为了让一个页面完整加载,就直接加入覆盖范围过大的公共域名后缀。
这里的 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 并不等于“只代理指定网站”:前面已经命中的请求不会再继续走到末尾。应先检查整段规则,而不是只看最后一行。
-
保留原配置
进入 Config,找到当前使用的配置,先保留副本或导出备份。确认本次编辑的是之后要选中的文件,不要同时修改多份配置。
-
编辑规则段
打开该配置的编辑入口,检查 [Rule]。将目标 DOMAIN 或 DOMAIN-SUFFIX 规则放在 FINAL 前面,核对逗号、域名和策略名称。
-
检查兜底
以 FINAL,DIRECT 作为末尾规则,并检查前面的规则是否还会把其他网站送往 PROXY。保存后在 Config 选中这份配置。
-
切换模式
返回 Home → Global Routing,选择 Config。回到 Home 核对当前服务器选择,并开启连接;首次连接按系统提示允许添加 VPN 配置。
-
重新发请求
关闭旧页面后重新打开,分别访问名单内和名单外网站。修改配置前已经建立的连接不能作为新规则的验证依据,必要时断开后重新连接。
这里需要的是 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 中的规则与当前路由模式,不能把两个层级混在一起排查。
GEOIP根据目标 IP 的地理归属匹配,不等于网站所属公司或网页语言;本文的明确域名名单不需要靠它来区分。IP-CIDR匹配地址段。共享服务器或内容分发网络中的地址可能同时承载多个网站,按地址段代理会比按域名更宽。FINAL是最终兜底。若放在目标域名规则之前,后续规则就无法处理已经由它兜底的请求。
验证结果:区分规则命中、DNS 与服务器可用性
网页能打开不等于它一定经过代理,网页打不开也不等于规则没有命中。验证时保持同一网络、同一服务器和同一份配置,只改变一项设置。可用连接记录中的目标主机、命中规则及策略信息核对路径;具体可见字段以当前界面为准。DNS 查询使用的路径与网页连接的策略也不能简单画等号。
- 名单内测试:重新打开目标网站,核对请求主机是否属于写入的后缀,策略是否为 PROXY。跳转后的主机名也要检查。
- 名单外测试:选择一个没有加入规则的普通网站,确认其新请求落到 DIRECT。若仍走代理,检查前面的其他规则。
- 连接测试:在 Home 使用 Connectivity Test 辅助判断服务器是否可达。测试有响应不代表所有目标网站及其资源都可用。
- 依赖测试:若文字可见而图片、登录失败,检查对应资源的真实主机名,再决定是否补入规则,不按页面外观猜测域名。
以下是网络请求可能返回的系统错误原文,不是规则编辑器的语法提示,也不代表每次都会在 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 位于末尾。之后再逐个核对网页依赖域名,才能在保持名单范围清晰的同时,避免把页面加载问题误判为整个分流机制失效。