Shadowrocket(小火箭)只代理少数网站时,应使用 Global Routing → Config,把目标域名的 PROXY 规则放在前面,以 FINAL,DIRECT 收尾。本文以前提“用户已有自己的服务商与订阅”为基础,说明域名清单、配置生效、连接验证与遗漏排查;完成后可得到一份默认直连、仅指定域名使用代理的规则配置。
一、先确定分流目标与适用边界
这套配置属于“明确列出的域名使用代理,其余请求默认直连”。它适合目标范围较小、可以维护域名清单的场景。如果希望所有未知请求默认使用代理,则不应采用本文的兜底方式:FINAL,DIRECT 的含义正好相反,未被前面规则接住的请求会直连。
准备工作分为两部分:Home 中已有可用的连接条目,Config 中有一份可编辑、可启用的配置。导入订阅只是提供连接条目,并不等于目标网站已经具备相应分流规则。客户端购买、连接服务与规则配置是不同事项;客户端买断 ≠ 线路套餐。
- 连接前提:先用 Home → Connectivity Test 检查已有条目的基本可达性,再选择本次要使用的条目。测试结果不等于目标网站一定可用。
- 规则前提:确认能够备份和修改当前配置,避免直接覆盖仍在使用的规则。
- 范围边界:本文讨论进入 Shadowrocket 且由规则处理的请求;系统流量、排除路由与 DNS 设置仍需分别检查。
- 应用来源:Shadowrocket 是 Apple 平台的闭源商业应用,唯一获取入口为 App Store,主要用于 iPhone / iPad;系统要求以 App Store 页面标注为准。
二、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 规则。下面使用保留示例域名演示语法,不代表可用的连接测试目标。
[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-SUFFIX | PROXY |
img.example.com | 第一条 DOMAIN-SUFFIX | PROXY |
login.example.net | 第二条 DOMAIN | PROXY |
www.example.net | 末尾 FINAL | DIRECT |
PROXY 表示使用代理出口,实际连接取决于当前的代理选择及配置中的策略设置;它不是需要填写的服务器地址。若原配置使用自定义策略组,应核对组名及组内选择,不要把既有组名机械替换为 PROXY。本文示例针对直接使用 PROXY 策略的最小配置。
四、按顺序修改并启用配置
规则通常自上而下匹配,首条命中即决定策略。因此,仅把新规则追加在已有 FINAL 后面不会生效;放在一个提前匹配的宽泛规则后面,也可能永远轮不到。维护“仅指定域名代理”时,应审查整个规则段,而不是只看新增的两三行。
-
保留副本
进入 Config,先保留当前配置副本或导出备份,记下当前启用的配置名称。若配置由远程内容维护,另存本地副本再编辑,避免后续更新覆盖手工修改。
-
整理规则
在 Config 打开待修改配置的编辑入口,定位
[Rule]。使用文本编辑时只修改对应段落;使用规则编辑界面时检查类型、域名与策略。不要新增第二个重复的[Rule]段。 -
设置兜底
把目标域名的 PROXY 规则放在可能拦截它们的宽泛规则之前,末尾保留
FINAL,DIRECT。检查原有其他 PROXY 规则或规则集;继续保留它们,就不再是“只有本文列出的域名走代理”。 -
启用配置
保存后回到 Config,选择刚才修改的配置,核对当前启用标记。仅保存文件不代表它已经成为正在使用的配置。随后进入 Home → Global Routing → Config。
-
重新验证
确认 Home 中选中的代理条目可用,再重新建立连接并发起新请求。不要只刷新一个已经保持连接的页面;必要时关闭旧页面后重开,减少连接复用对判断的影响。
五、同时验证目标域名和非目标域名
验收应检查“走了哪条规则”,而不只是“网页能不能打开”。网站能打开可能是直连成功,也可能是代理成功;网站打不开则可能来自 DNS、目标服务、代理连接或缺失的依赖域名。Connectivity Test 用于检查连接条目,不能替代逐请求的规则核对。
- 目标请求:选择自己实际需要代理的主机名,发起新请求,在连接记录中核对请求域名、命中规则与出口策略,预期为对应的域名规则和 PROXY。
- 对照请求:选择一个不在清单内、当前网络可以直连的主机名,预期命中 FINAL 并使用 DIRECT。两个方向都符合,才说明默认策略与例外规则同时成立。
- 依赖请求:分别测试首页、登录、图片加载和实际功能。一个页面可能同时请求多个域名,首页成功不代表登录与资源加载都成功。
- 环境记录:记下使用 Wi-Fi 还是蜂窝网络、启用的配置名称与失败的具体主机名。一次只改一项,再重复相同操作,便于比较结果。
如果页面文字出现但图片空白,应先查图片请求的真实主机名。例如正文来自 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 中的规则配置不是同一项操作。更新后先检查当前代理选择是否仍有效,再核对启用配置是否变化。若单独更新的是远程配置,则应检查本地修改是否被覆盖。不要仅凭连接列表刷新成功就认定规则仍然正确。
七、维护清单与恢复原配置
后续维护以“实际请求主机名”为单位。发现某项功能缺失时,先记录失败域名,再判断它是否应加入代理清单;无需代理的统计、资源或其他请求,不必为了追求记录整齐而一并添加。规则越精确,越容易解释每次出口选择。
- 新增网站:先判断只需要某个主机名,还是整个域名及其子域名,再选择 DOMAIN 或 DOMAIN-SUFFIX。
- 删除网站:同时审查它的独立资源域名与登录域名,删除已不需要的规则,保留末尾 FINAL,DIRECT。
- 连接异常:先核对当前连接条目与 Connectivity Test,再查命中规则;不要把连接不可用误判成域名语法错误。
- 回退修改:在 Config 重新启用先前保留的配置,确认 Home → Global Routing → Config,再建立新连接测试。若连接会自动触发,可到 Settings → On Demand 检查触发条件,避免把连接行为与规则出口混为一谈。
最终验收标准只有两项:清单内的真实请求命中预期 PROXY 规则,清单外的对照请求命中 FINAL,DIRECT。保留配置副本、验证记录和明确的域名范围,比反复切换全局姿态更利于长期维护。