本文适合已有可用连接、需要把代理范围限制到指定网站的用户。先确认 Config 模式,再在配置中按顺序写域名规则,最后用 FINAL,DIRECT 处理未匹配连接;随后通过请求记录检查页面依赖域名,避免把“网页能打开”误当作分流已正确生效。
一、适用平台与分流前提
Shadowrocket(小火箭)覆盖 iPhone、iPad、Mac、Windows、安卓与 Linux。获取分为两档:iPhone / iPad 从 App Store 获取,$2.99 一次性付费,系统要求以 App Store 页面标注为准;Mac(Apple 芯片与 Intel)、Windows、安卓、Linux 版免费。各平台获取说明见下载页。以下操作以 iPhone / iPad 的 Home、Config、Settings 界面词说明,其他平台按对应的配置与路由入口操作。
规则只负责决定连接交给哪项策略,不会生成连接凭据。本文以用户已有自己的服务商与订阅、且已能正常连接为前提;本站不提供、不销售、不推荐节点或订阅。客户端购买费用不包含线路服务。
- Home:确认已导入自己的连接信息,并选中可用连接;单独测试其连通性。
- Config:确认当前生效的配置文件,编辑前先保存副本,以便恢复。
- Settings:测试期间检查 On Demand,避免按需连接条件改变连接状态,干扰判断。
通过订阅导入的连接列表与 Config 中的规则不是同一层设置。更新连接列表不能代替选择配置文件;更新远程配置也可能覆盖手工编辑。因此,开始前要分清正在修改的是连接参数、订阅条目,还是路由配置。
二、Global Routing 应选择 Config
“指定网站走代理”需要规则参与决策。在 Home → Global Routing 中选择 Config,表示按当前配置处理连接。不要因为某个网站暂时打不开就长期切到 Proxy,否则即使配置文字没有变化,实际路由范围也已经改变。
Config:按配置处理
推荐读取当前配置中的规则;命中指定域名时使用 PROXY,未命中时交给 FINAL,DIRECT。
适合:本文的指定网站代理、其余直连目标。
Proxy:全局代理姿态
将进入客户端处理范围的连接交给代理,不按本文的域名清单区分网站。
适合:临时检查代理连接是否可用,检查后切回 Config。
Direct:全局直连姿态
将进入客户端处理范围的连接按直连处理,不能用于验证域名规则是否会选择 PROXY。
适合:临时检查本地网络直连是否正常。
Scene:场景姿态
按已设置的场景处理路由;排查前需要核对场景内容,不能仅凭 Scene 字样推断最终策略。
适合:已有明确场景设置的使用方式,不作为本文验证起点。
判断顺序:先确认模式,再修改规则
先把 Global Routing 固定为 Config,并核对当前配置文件名称;如果仍停在 Proxy,继续增加 DIRECT 规则也无法验证本文的分流目标。
三、最小规则:域名清单加 FINAL,DIRECT
从最小范围开始,只添加确定需要代理的域名。下面使用保留示例域名说明语法,不代表任何实际线路或网站推荐。如果已有完整配置,只把相关条目放进现有的 [Rule] 段,不要新建重复段,也不要用这段示例覆盖整个配置文件。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN-SUFFIX,example.net,PROXY
FINAL,DIRECT
DOMAIN-SUFFIX,example.com,PROXY 匹配 example.com 以及 www.example.com、api.example.com 等子域名;它不是任意字符串包含匹配,不会因为另一个域名中出现相似字样就自动命中。域名字段不填 https://、端口、路径或查询参数。
规则按顺序检查,先命中的条目决定策略。FINAL,DIRECT 是未匹配连接的兜底,不是“国内网站识别”。它的含义是:凡是没有被前面的规则接住的连接,都尝试直连。某个网站直连失败,并不表示 FINAL 失效,也可能是当前网络无法直接访问它。
PROXY 表示代理策略,DIRECT 表示直连。它们不是 Shadowsocks、VMess、VLESS、Trojan、Hysteria2 或 WireGuard 等协议名称;协议由已有连接参数决定。使用这份简单清单时,还应确认 PROXY 最终引用的是预期的代理连接,而不是把同名策略组指向了 DIRECT。
四、DOMAIN-KEYWORD 与 IP 规则的边界
需要按名称中的关键字匹配时,可以使用 DOMAIN-KEYWORD。不过,关键字的作用范围通常比域名后缀更宽。如果已经知道准确域名,优先使用 DOMAIN-SUFFIX;只有明确需要覆盖一组包含相同字符串的域名时,再考虑关键字。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN-KEYWORD,example,PROXY
FINAL,DIRECT
在这个演示中,第二条会匹配域名中包含 example 的连接,因此第一条之外的域名也可能走 PROXY。这不是“只匹配 example.com”的等价写法。实际配置一般只保留符合目标的一种写法,避免为了省事使用过短关键字,扩大代理范围。
| 关键字 | 匹配对象 | 本文中的处理建议 |
|---|---|---|
DOMAIN-SUFFIX | 域名及其子域名 | 用于明确的网站域名清单 |
DOMAIN-KEYWORD | 域名中的字符串 | 确认扩大匹配范围是预期行为后再加 |
IP-CIDR | IPv4 地址网段 | 仅在已知目标网段时使用 |
GEOIP | 地址库中的 IP 地区归属 | 不能据此判断内容使用的语种、所属机构或域名地区 |
FINAL | 前面均未匹配的连接 | 放在末尾并指定 DIRECT |
例如 IP-CIDR,192.0.2.0/24,PROXY,no-resolve 使用的是文档示例网段,不应原样加入实际清单。no-resolve 表示不为了匹配该条规则主动解析域名;它不等于禁用所有 DNS。通过 IP 地址直接发起的连接可能没有可供域名规则匹配的主机名,而共享同一地址的网站也不一定属于同一服务,所以不要随意把网站某次解析出的 IP 整段设为 PROXY。
五、保存配置并逐项验证
验证要同时看代理目标与直连对照,不能只打开一个首页。浏览器缓存、旧连接复用和页面中的第三方资源都可能掩盖配置变化。每改一组规则,保存后重新建立测试连接,并从请求记录核对实际命中结果。
-
备份配置
进入 Config,保存当前配置副本。若原文件来自远程地址,先确认后续更新是否会覆盖本地修改。
-
编辑规则
在 Config 中打开目标配置的编辑入口,找到
[Rule]。把指定域名条目放在 FINAL 之前,并检查是否已有更靠前的宽泛规则。 -
启用配置
保存并选中该配置,回到 Home → Global Routing → Config。确认已有代理连接可用,必要时断开后重新连接。
-
检查连接条件
进入 Settings → On Demand 核对按需连接条件,测试时避免自动连接或断开改变状态。之后返回 Home 确认连接开关已开启。
-
核对请求
重新访问清单内网站,再访问一个清单外网站。在请求记录中分别检查目标主机、命中规则和实际策略,应分别对应 PROXY 与 DIRECT。
若首页文字能显示但图片或登录失败,检查失败资源使用的真实主机名。一个页面可能分别请求主站、静态资源、接口和认证域名。把确认属于该访问流程、且确实需要代理的域名逐项补到 FINAL 前,再重复测试;不要直接加入覆盖整个公共资源平台的大范围关键字。
六、常见现象与修正方法
以下问题按“模式 → 当前配置 → 规则顺序 → 实际请求域名”的顺序处理。一次只改一个因素,保存前后都记录命中结果,才能区分是路由规则问题,还是代理连接、DNS 或目标网站自身的问题。
已经写了 FINAL,DIRECT,为什么很多网站仍走代理?
先检查 Home → Global Routing 是否为 Config,再看当前配置的 FINAL 上方是否已有宽泛的 DOMAIN-KEYWORD、IP 规则或外部规则集。先命中的规则会提前决定策略,末尾 FINAL 不会推翻它。也要检查被引用的策略组实际选中了什么。
指定网站还是直连,是域名规则没有用吗?
先确认编辑文件就是 Config 中当前选中的文件,然后查看实际请求主机名。访问 example.com 后跳转到另一个域名,需要单独匹配跳转后的主机。若记录中只有 IP 地址,不能仅凭网址栏推断 DOMAIN-SUFFIX 一定能命中。
主站能打开,登录或视频却失败,应该加什么?
重新触发失败操作,在请求记录中查找认证、媒体或接口请求。只为确认需要代理的依赖域名添加规则,并放在 FINAL 前。若记录已经显示 PROXY,继续检查已有连接的可用性,不要反复扩大域名匹配范围。
更新订阅以后规则变了,怎么避免重复修改?
先区分更新的是 Home 中的连接订阅,还是 Config 中的远程配置。连接订阅主要更新连接列表;远程配置更新可能替换文件内容。保留自己的规则副本,每次更新后核对当前配置、规则顺序与 FINAL 的策略,再测试清单内外各一个网站。
最终应得到一份可以解释每次匹配结果的小清单:明确的域名使用 PROXY,其他连接由 FINAL,DIRECT 兜底。以后新增网站时,沿用“观察实际域名、增加最小匹配、核对策略”的流程,而不是不断堆叠关键字。需要了解更完整的配置概念,可阅读协议手册与概念速查。