速飞云 — 香港高速节点 · 稳定不限速

Shadowrocket 配置规则分流:从导入到命中验证

更新于 2026-11-13 · sufeiyun.shop

简答:Shadowrocket 分流要同时确认四件事:配置文件已经导入、目标文件已经选中、Home → Global Routing 已切换为 Config、实际请求记录命中了预期规则。最快做法是先用一份最小配置验证规则顺序,再根据请求记录补充真实域名;本文只讲 Shadowrocket,不含其他客户端。

定义:Shadowrocket 配置规则分流,是根据请求的域名、IP 地址段或 GeoIP 结果,把流量交给 DIRECT、PROXY、REJECT 或配置中定义的策略组处理。

先看这张 4 层状态速查卡:规则不生效先逐项打勾

本文是第三方使用指南,不是 Shadowrocket 官方页面。Shadowrocket 的节点、配置文件、Global Routing 和实际请求命中属于不同层级;只导入文件,并不能证明分流已经启用。App Store 页面列出了该客户端支持基于域名、域名后缀、关键字、CIDR IP 和 GeoIP 配置规则,也支持从 URL 或 iCloud Drive 导入规则文件,具体菜单名称仍应以设备当前界面为准。App Store 中的 Shadowrocket 功能说明

检查层应看到的结果未通过时怎么做
文件已导入Config 页面能看到目标 .conf 或配置 URL重新导入前先确认来源和链接,订阅链接不要公开分享
文件已选中Config 页面当前使用的是你准备修改的文件检查是否误选了同名副本或内置默认文件
路由已启用Home → Global Routing 显示 Config如果是 Proxy 或 Direct,先切换为 Config
规则已命中新请求记录显示目标主机和预期策略重新发起请求,再查规则顺序、策略名和 DNS

先试这一步:暂时只保留一条明确的 DOMAIN 规则和一条 FINAL 兜底规则,切换到 Config 后重新访问测试域名。如果能看到命中变化,再逐步增加 DOMAIN-SUFFIX、GEOIP 和 RULE-SET,避免一次修改多处而无法判断原因。

Shadowrocket 配置规则分流的 5 步闭环

  1. 导入节点或订阅。在 Home 页面按当前版本显示的添加入口导入现有节点资料。节点主要负责连接出口;订阅更新成功只表示客户端重新取回了链接返回的内容,不代表配置文件中的规则、DNS 或外部规则集已经同步。完整订阅链接可能包含访问凭据,不要放进截图、公开仓库或群聊。
  2. 导入配置文件或规则订阅。进入 Config 页面,使用当前界面提供的 URL、文件或 iCloud Drive 导入方式。导入后保留一份备份,并检查文件中是否包含 [General]、[Proxy Group] 或 [Rule] 等段落。节点订阅和规则配置可以是两个不同对象,不能把节点 URL 直接当成规则文件使用。
  3. 选中配置文件。在 Config 页面点击目标文件,使它成为当前配置。文件“已经出现在列表中”和“当前正在使用”是两个状态;如果改完内容但请求没有任何变化,先确认保存的是当前选中的文件。
  4. 切换到 Config 路由。回到 Home,在 Global Routing 中选择 Config。Proxy 适合临时判断代理链路,Direct 适合临时判断直连链路;只有 Config 才会按当前配置中的规则判断。不同版本的入口名称可能略有差异,以设备实际显示为准。
  5. 选节点并验证命中。在 Home 的 SERVER 或节点区域选择一个可用节点并开启连接,然后重新发起一个请求。不要只看连接开关或流量统计,应查看客户端提供的请求记录、Data 或 Diagnostics 页面,确认目标主机、命中的规则和最终策略。Connectivity Test 只能作为连通性辅助检查,不能替代真实目标请求。

如果 Proxy 模式可以访问,而 Config 模式不符合预期,优先检查规则顺序、当前配置文件、策略名称和 DNS;如果 Proxy 模式也失败,再检查节点参数、当前 Wi‑Fi 或移动网络。

规则匹配顺序:精确规则在前,FINAL 放最后

规则应按“更具体 → 更宽泛 → 兜底”的顺序组织。公开的 Shadowrocket 配置仓库示例采用了 [Rule] 段,并展示了 DOMAIN-KEYWORD、DOMAIN-SUFFIX、IP-CIDR、GEOIP 和 FINAL 等写法;其配置文件还包含 DNS 和 IPv6 等通用设置。Shadowrocket 配置仓库中的 default.conf

规则类型匹配范围示例使用提醒
DOMAIN精确主机名DOMAIN,login.example.test,DIRECT适合给某个接口或登录域名设置例外
DOMAIN-SUFFIX域名本身及其子域名DOMAIN-SUFFIX,example.test,PROXY范围比 DOMAIN 宽,例外必须放在前面
DOMAIN-KEYWORD主机名包含指定字符串DOMAIN-KEYWORD,service,PROXY可能误匹配,建议先用请求记录确认
IP-CIDRIPv4 或 IPv6 地址段IP-CIDR,192.168.0.0/16,DIRECT,no-resolveno-resolve 用于域名请求命中 IP 规则时跳过本地 DNS 解析,不能理解为关闭所有 DNS
GEOIP按目标 IP 的地理数据库结果GEOIP,CN,DIRECT受 CDN、解析结果、IPv6 和数据库变化影响
FINAL前面没有命中的请求FINAL,PROXY通常只保留一条,并放在规则末尾

规则示例:

[Rule]
DOMAIN,login.example.test,DIRECT
DOMAIN-SUFFIX,example.test,PROXY
DOMAIN-KEYWORD,telemetry,REJECT
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY

这里的 DOMAIN 例外必须位于 DOMAIN-SUFFIX 前面;否则登录主机可能先被后缀规则匹配。FINAL 不是失败后的自动重试,而是前面没有命中时采用的最后策略。

两套可复制的最小模板:国内直连/海外代理与国内回程

模板一:国内目标直连,其他请求交给代理

[General]
dns-server = system, 1.1.1.1
ipv6 = false
prefer-ipv6 = false

[Rule]
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
DOMAIN-SUFFIX,example.cn,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY

把 example.cn 替换为请求记录中确认过的实际域名;把 PROXY 替换为当前配置中真实存在的策略名。这个结构适合“国内地址尽量直连,未分类请求交给代理”的验证场景,但 GEOIP 不能保证覆盖所有国内服务。

模板二:海外网络访问国内目标时,将国内目标交给回程策略

[General]
dns-server = system, 1.1.1.1
ipv6 = false
prefer-ipv6 = false

[Rule]
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
DOMAIN-SUFFIX,example.cn,回国
GEOIP,CN,回国
FINAL,DIRECT

这里的 回国 只是示例策略组名称,必须先在当前配置的 [Proxy Group] 中存在,或者替换为你实际使用的策略名称。模板二的逻辑是:明确的国内域名优先走回程策略,目标 IP 被 GeoIP 判定为 CN 时也交给该策略,其他请求默认直连。若某个国内服务使用海外 CDN,应以请求记录和实际目标 IP 为准补充 DOMAIN-SUFFIX 规则。

策略名不要混用:DIRECT 是直连动作,REJECT 是拒绝动作;PROXY 在配置规则中通常是策略名或策略关键字,不等同于某个固定服务器地址。若配置使用了“香港节点”“自动选择”或其他自定义组名,模板中的动作必须改成配置中已经定义的名称。

DNS、IPv6、QUIC 与按 App 分流:先知道边界再改配置

Shadowrocket 的 App Store 功能说明提到 DNS 请求记录、IPv6、DNS over HTTPS、DNS over TLS、DNS over QUIC 和 HTTPS 解密等能力,但这些选项之间不是同一个开关;是否适合启用,要结合当前网络、配置文件和目标服务判断。Shadowrocket App Store 功能列表

  • DNS 分流:dns-server 只是在 [General] 中指定解析服务器的示例,不等于所有域名都会按照你期待的线路解析。改 DNS 后要重新发起请求,并查看目标主机和连接结果。
  • IPv6:如果设备同时拿到 A 和 AAAA 记录,打开或关闭 IPv6 可能改变实际连接地址。排查时记录目标是否使用 IPv4 或 IPv6,不要只根据域名规则判断。
  • QUIC/UDP:网页能通过 TCP 访问,不代表 UDP/443 或 QUIC 路径也能访问。遇到部分加载、视频初始化失败或登录异常时,应分别观察协议和请求目标。
  • 浏览器安全 DNS:浏览器自带的 DoH 或 DoT 可能让浏览器解析路径与系统 DNS 不一致。遇到浏览器与其他 App 结果不同,先检查浏览器的安全 DNS 开关。
  • HTTPS 解密:HTTPS 解密涉及证书安装、信任和隐私范围,不能为了验证普通分流就直接开启。本文不提供绕过证书校验的做法;没有明确需求时保持关闭。
  • 按 App 分流:不要直接照抄 PROCESS-NAME。当前检索到的资料无法核实它在 Shadowrocket iOS 当前版本中的通用支持情况;iOS 应用级分流应以当前版本实际提供的功能和官方应用说明为准。
  • iCloud 配置:iCloud Drive 可以作为配置文件导入来源之一,但它不是节点订阅或规则命中记录。导入后仍需单独确认文件已选中、Global Routing 已为 Config。

规则不生效时的排查清单

  1. 确认模式:Home → Global Routing 是否为 Config。若是 Proxy 或 Direct,先切回 Config。
  2. 确认当前文件:Config 页面选中的文件是否就是刚刚修改的文件,保存后是否重新加载。
  3. 确认实际主机:网页地址栏中的域名不一定是失败目标,页面可能继续请求登录、图片、接口、字体或 CDN 域名。以请求记录中的主机名为准。
  4. 确认策略存在:规则动作写成了 PROXY、DIRECT 或自定义策略名时,检查该名称是否真的存在。名称拼写不同,规则可能无法按预期执行。
  5. 确认顺序:精确 DOMAIN 是否位于宽泛 DOMAIN-SUFFIX、DOMAIN-KEYWORD 和 GEOIP 之前,FINAL 是否位于末尾。
  6. 确认 DNS 与地址族:检查 DNS、IPv4/IPv6、浏览器安全 DNS 和目标协议。TCP 测试不能代表 UDP/QUIC 结果。
  7. 重新发起请求:修改规则后关闭并重新打开目标页面或 App 请求,再看 Data、请求记录或 Diagnostics 中的结果。旧连接不一定会立即重新匹配。

如果规则仍然无法判断,先回到最小模板,只保留一条明确的 DOMAIN 规则和一条 FINAL 规则。确认命中后再增加 GEOIP、IP-CIDR、规则集或自定义策略,能够减少多个变量同时变化造成的误判。

安全检查清单:不公开完整订阅链接;不把未知配置文件直接设为当前配置;修改前保存备份;外部规则集先查看来源和内容;规则集更新后重新检查策略名称、规则顺序和 FINAL 兜底。

常见问题

Shadowrocket 导入配置后,为什么还要切换 Config?

导入只代表文件进入了客户端管理范围;还要确认文件被选中,并在 Home → Global Routing 中选择 Config。否则当前流量可能仍按 Proxy 或 Direct 处理。

Proxy、Direct 和 Config 应该怎么选?

需要按规则分流时选择 Config;只想判断当前节点或代理链路时可临时选择 Proxy;想判断本地网络是否能直连时可临时选择 Direct。测试完成后恢复 Config,避免把临时结果当成规则结果。

DOMAIN 和 DOMAIN-SUFFIX 有什么区别?

DOMAIN 用于精确主机名,DOMAIN-SUFFIX 用于域名本身及其子域名。需要给某个子域名设置例外时,应把 DOMAIN 放在更宽泛的 DOMAIN-SUFFIX 前面。

GEOIP,CN,DIRECT 能保证所有国内网站直连吗?

不能保证。它依据目标 IP 的地理数据库结果判断,CDN、IPv6、解析结果和数据库变化都可能影响结果。对关键域名,建议根据请求记录增加明确的 DOMAIN 或 DOMAIN-SUFFIX 规则。

为什么规则改了,但请求记录没有变化?

先检查当前文件是否选中、Global Routing 是否为 Config、规则是否保存,再重新发起请求。还要排查前面的宽泛规则是否已经提前命中,以及当前策略名称是否存在。

节点能连接,为什么某个网站仍然打不开?

节点连接成功只说明代理链路具备连接结果,不代表目标域名、DNS、IPv6 或 UDP/QUIC 路径都正常。先用 Proxy 模式测试同一目标,再在 Config 模式查看实际命中的主机和策略。

常见问题

Shadowrocket 配置规则分流最容易漏掉哪一步?

最容易漏掉的是导入后没有在 Config 页面选中目标文件,或 Home → Global Routing 仍然是 Proxy/Direct。文件存在、文件选中、Config 启用和请求命中是四个独立检查点。

如何写一套国内直连、海外代理的最小规则?

可从局域网 IP-CIDR 直连、DOMAIN-SUFFIX 指定直连、GEOIP,CN,DIRECT、FINAL,PROXY 开始,再按请求记录补充实际域名和策略名称。

海外访问国内服务时,如何设置回程规则?

在配置中准备一个实际存在的回程策略组,把明确的国内域名和 GEOIP,CN 指向该策略,最后使用 FINAL,DIRECT;CDN 场景仍需根据实际请求记录补充规则。

PROCESS-NAME 能否直接用于 Shadowrocket 按 App 分流?

当前检索资料不足以核实它在 Shadowrocket iOS 当前版本中的通用支持情况,本文不把 PROCESS-NAME 作为可直接复制的方案。应以当前版本实际提供的应用级功能为准。

规则修改后没有变化,是否一定是客户端没有保存?

不一定。还可能是当前文件未选中、Global Routing 不是 Config、请求被更早的宽泛规则命中、策略名称不存在,或旧连接没有重新发起。

相关阅读

参考资料

  1. Shadowrocket — App Store
  2. Shadowrocket 配置文件与规则语法示例