小火箭只代理指定网站:用规则让部分域名走 PROXY、其余直连

适用于只想让少数网站经过节点的场景。本文演示如何列出目标域名并标记 PROXY,再用 FINAL,DIRECT 兜底,最后在 Config 姿态下验证分流是否生效。

本文速览

Shadowrocket(小火箭)只代理少数网站时,应使用 Global Routing → Config,把目标域名的 PROXY 规则放在前面,以 FINAL,DIRECT 收尾。本文以前提“用户已有自己的服务商与订阅”为基础,说明域名清单、配置生效、连接验证与遗漏排查;完成后可得到一份默认直连、仅指定域名使用代理的规则配置。

一、先确定分流目标与适用边界

这套配置属于“明确列出的域名使用代理,其余请求默认直连”。它适合目标范围较小、可以维护域名清单的场景。如果希望所有未知请求默认使用代理,则不应采用本文的兜底方式:FINAL,DIRECT 的含义正好相反,未被前面规则接住的请求会直连。

准备工作分为两部分:Home 中已有可用的连接条目,Config 中有一份可编辑、可启用的配置。导入订阅只是提供连接条目,并不等于目标网站已经具备相应分流规则。客户端购买、连接服务与规则配置是不同事项;客户端买断 ≠ 线路套餐。

二、Global Routing 必须选择 Config

在 Home → Global Routing 中选择 Config,才能按当前启用配置的规则决定出口。Proxy、Direct 适合临时对照测试,但不能代替“部分域名代理”的规则配置。若界面中使用了 Scene,也应先核对场景实际采用的路由设置;本文验证期间固定使用 Config,减少条件变化。

Config

推荐

按启用配置中的规则匹配。配合目标域名的 PROXY 与末尾的 FINAL,DIRECT,实现指定域名代理、其他请求直连。

适合:明确维护少数目标域名的日常分流。

Proxy

对进入该路由处理范围的流量统一采用代理,不按本文的域名规则区分目标。切换后网站可用,只能帮助判断问题是否与分流有关。

适合:临时判断代理连接与规则匹配哪一侧需要排查。

Direct

对进入该路由处理范围的流量统一采用直连。即使配置中写有 PROXY,停留在此姿态也不能得到本文预期的分流结果。

适合:临时对照当前网络的直连表现。

先固定姿态,再修改规则

每次测试前确认 Home → Global Routing → Config,并核对启用的配置名称;不要同时切换姿态、更换连接条目和修改域名,否则无法判断是哪一项改变了结果。

三、列出域名,再写最小规则

域名规则匹配主机名,不匹配整段网页地址。以 https://www.example.com/account 为例,应提取 www.example.com,不要把 https://、路径 /account 或查询参数放进 DOMAIN 规则。下面使用保留示例域名演示语法,不代表可用的连接测试目标。

2 类
本文使用 DOMAIN 与 DOMAIN-SUFFIX 两类域名匹配
3 段
域名规则依次写类型、匹配内容、策略,以英文逗号分隔
1 条
FINAL,DIRECT 放在规则末尾,作为统一兜底
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN,login.example.net,PROXY
FINAL,DIRECT

这是一段用于讲解的 [Rule] 内容,不是要求覆盖整份配置。第一条同时匹配 example.com 与它的子域名,例如 www.example.com、static.example.com;它不会匹配 notexample.com。第二条只匹配 login.example.net,不会连带代理 www.example.net。

请求主机名命中内容预期策略
example.com第一条 DOMAIN-SUFFIXPROXY
img.example.com第一条 DOMAIN-SUFFIXPROXY
login.example.net第二条 DOMAINPROXY
www.example.net末尾 FINALDIRECT

PROXY 表示使用代理出口,实际连接取决于当前的代理选择及配置中的策略设置;它不是需要填写的服务器地址。若原配置使用自定义策略组,应核对组名及组内选择,不要把既有组名机械替换为 PROXY。本文示例针对直接使用 PROXY 策略的最小配置。

四、按顺序修改并启用配置

规则通常自上而下匹配,首条命中即决定策略。因此,仅把新规则追加在已有 FINAL 后面不会生效;放在一个提前匹配的宽泛规则后面,也可能永远轮不到。维护“仅指定域名代理”时,应审查整个规则段,而不是只看新增的两三行。

  1. 保留副本

    进入 Config,先保留当前配置副本或导出备份,记下当前启用的配置名称。若配置由远程内容维护,另存本地副本再编辑,避免后续更新覆盖手工修改。

  2. 整理规则

    在 Config 打开待修改配置的编辑入口,定位 [Rule]。使用文本编辑时只修改对应段落;使用规则编辑界面时检查类型、域名与策略。不要新增第二个重复的 [Rule] 段。

  3. 设置兜底

    把目标域名的 PROXY 规则放在可能拦截它们的宽泛规则之前,末尾保留 FINAL,DIRECT。检查原有其他 PROXY 规则或规则集;继续保留它们,就不再是“只有本文列出的域名走代理”。

  4. 启用配置

    保存后回到 Config,选择刚才修改的配置,核对当前启用标记。仅保存文件不代表它已经成为正在使用的配置。随后进入 Home → Global Routing → Config。

  5. 重新验证

    确认 Home 中选中的代理条目可用,再重新建立连接并发起新请求。不要只刷新一个已经保持连接的页面;必要时关闭旧页面后重开,减少连接复用对判断的影响。

五、同时验证目标域名和非目标域名

验收应检查“走了哪条规则”,而不只是“网页能不能打开”。网站能打开可能是直连成功,也可能是代理成功;网站打不开则可能来自 DNS、目标服务、代理连接或缺失的依赖域名。Connectivity Test 用于检查连接条目,不能替代逐请求的规则核对。

如果页面文字出现但图片空白,应先查图片请求的真实主机名。例如正文来自 www.example.com,图片却来自 img.example.net,第一条后缀规则并不会覆盖后者。只有确认该主机也需要代理时,才添加一条 DOMAIN,img.example.net,PROXY,并放在 FINAL 之前。

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

不要因为一次资源加载失败,就直接扩大到 DOMAIN-KEYWORD 或大范围 IP 规则。共享基础设施上的域名与地址可能服务多个网站,范围放得越宽,“只代理指定网站”的边界越难维持。

六、常见问题与对应检查项

规则写了,为什么指定网站还是直连?

先检查 Home → Global Routing 是否为 Config,再到 Config 核对启用的文件。随后查看规则顺序:提前出现的 DIRECT、规则集或 FINAL 都可能先命中。最后核对连接记录中的真实主机名,确认它与填写的域名一致,而不是跳转后的另一个域名。

为什么其他网站也走了代理?

先排除 Global Routing 停在 Proxy 的情况。若已使用 Config,检查原配置是否还保留其他 PROXY 规则、宽泛的 DOMAIN-KEYWORD 或引用规则集,并确认末尾不是 FINAL,PROXY。后缀规则会覆盖所有对应子域名,需要缩小范围时改用 DOMAIN。

可以按网页路径只代理某个页面吗?

本文的 DOMAIN 与 DOMAIN-SUFFIX 不能区分同一主机下的 /video 和 /account,也不会因为端口不同自动变成不同域名规则。HTTPS 常用端口为 443,但给规则内容追加 :443 并不能替代正确的主机名。只想区分子站时,先检查它们是否使用不同主机名。

用 IP 访问,为什么没命中域名规则?

直接请求 IP 地址时不能假定一定能匹配域名规则。确实需要代理某个固定 IPv4 地址时,可按需求使用如 IP-CIDR,192.0.2.10/32,PROXY,no-resolve 的规则并置于 FINAL 前;这里的地址属于文档示例地址。不要把网站暂时解析出的整个地址段都纳入代理,共享地址与解析变化会扩大影响范围。

更新订阅后,规则也会一起变化吗?

连接订阅更新与 Config 中的规则配置不是同一项操作。更新后先检查当前代理选择是否仍有效,再核对启用配置是否变化。若单独更新的是远程配置,则应检查本地修改是否被覆盖。不要仅凭连接列表刷新成功就认定规则仍然正确。

七、维护清单与恢复原配置

后续维护以“实际请求主机名”为单位。发现某项功能缺失时,先记录失败域名,再判断它是否应加入代理清单;无需代理的统计、资源或其他请求,不必为了追求记录整齐而一并添加。规则越精确,越容易解释每次出口选择。

最终验收标准只有两项:清单内的真实请求命中预期 PROXY 规则,清单外的对照请求命中 FINAL,DIRECT。保留配置副本、验证记录和明确的域名范围,比反复切换全局姿态更利于长期维护。

App Store 正版入口购买前核对开发者与应用 ID