JetStream VPN - 自由最快最稳妥, 亚洲最佳VPN

Shadowrocket 代理规则怎么设置?完整操作与排查步骤

更新于 2026-11-04 · jetstream.best

简答:Shadowrocket 代理规则的关键在于两步:先在 Config 中导入并选中配置文件,再在 Home 页的 Global Routing 里选择 Config。接着按“具体规则在前、宽泛规则在后、FINAL 兜底”的原则编写,并用 Test Rule、日志和实际访问验证是否命中。

定义:Shadowrocket 代理规则,是由匹配条件和处理策略组成的分流规则,用来决定某个域名、IP 或请求应走代理策略、直连策略还是拒绝请求。

先试这三步:让规则模式先正常工作

如果你已经准备好了节点或订阅,不要一上来就修改大量规则。先通过下面三步,确认基础连接和配置模式能正常工作:

  1. 导入节点或订阅:在 Home 页面中添加订阅或服务器条目,并确保至少有一个节点处于选中状态。订阅负责更新服务器,不等于代理规则。
  2. 确认配置文件:点击底部导航栏的 Config,导入或下载一个包含 [Rule] 区段的配置文件,并确保该文件处于选中状态。
  3. 启用规则路由:返回 Home 页面,点击 Global Routing 并选择 Config(注意:选中配置文件不等于启用了规则路由,必须在 Global Routing 中勾选 Config),随后开启连接开关。

根据 App Store 页面说明,Shadowrocket 支持通过域名、域名后缀、关键词、CIDR IP 和 GeoIP 等方式配置规则,并不自带任何代理服务或服务器资源,具体可参考 App Store 产品页面。

Config、Proxy、Direct 到底有什么区别?

模式作用适合什么时候用排查重点
Config根据当前配置文件中的规则决定请求走向日常分流,例如部分地址直连、部分地址代理配置文件是否真正选中、Global Routing 是否为 Config、策略名称是否存在
Proxy通过当前选中的代理路径处理请求临时判断节点或代理路径本身是否可用节点是否选中、协议参数是否完整、连接是否成功
Direct按直连方式处理请求与代理路径进行对照测试当前网络、DNS 和目标地址本身是否可访问

初学者最容易混淆的是:在 Config 页面选中了文件,不等于规则已经生效,还必须在 Home 的 Global Routing 中选择 Config。建议先用 Proxy 测试节点,再切换回 Config 测试规则。若 Proxy 能访问而 Config 不能,优先检查规则命中和策略名称;若 Proxy 也不能访问,则先排查节点、DNS 或本地网络。

常用规则怎么写:域名、IP、地区与兜底

Shadowrocket 规则通常由三部分组成:匹配类型、匹配值、策略。例如:DOMAIN-SUFFIX,example.com,PROXY。请注意,策略名称(如 PROXY、DIRECT 或自定义策略组)必须与配置文件中的定义完全一致。

  • DOMAIN:匹配一个精确域名,例如 DOMAIN,api.example.com,PROXY。
  • DOMAIN-SUFFIX:匹配域名及其子域名,例如 DOMAIN-SUFFIX,example.com,PROXY。
  • DOMAIN-KEYWORD:匹配域名中包含指定关键词的请求。
  • IP-CIDR:匹配 IPv4 地址段;IPv6 地址段通常使用 IP-CIDR6。
  • GEOIP:按 IP 地理库结果匹配,实际结果会受 DNS 解析和地理库数据影响。
  • FINAL:前面没有规则命中时使用的兜底策略。

一个基础的配置结构示例可以写成:

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN,lan.example,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY

这里的域名仅作语法示例,不代表任何实际连接服务。策略名必须在配置文件的 [Proxy] 或 [Proxy Group] 中存在,否则会导致加载失败。

规则顺序为什么重要?用一条请求理解匹配逻辑

规则通常从上到下逐条检查,一旦某条规则命中,请求就会按该规则的策略处理,不会继续向下寻找。因此,具体例外必须放在宽泛规则的前面。

例如下面的顺序:

DOMAIN,video.example.com,DIRECT
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

当你访问 video.example.com 时,第一条精确域名规则率先命中,因此走 DIRECT;当你访问 www.example.com 时,第一条不匹配,第二条后缀规则命中,因此走 PROXY;其他未命中的请求则由 FINAL,DIRECT 兜底。如果把 DOMAIN-SUFFIX,example.com,PROXY 放在最前面,第一条精确直连例外就会失效。

速查清单:从零到规则生效的完整排查步骤

  1. 记录初始状态:记下当前网络、选中的服务器和 Config 文件,每次只改动一项。
  2. 测试节点:将 Global Routing 设为 Proxy,确认节点本身能正常连通。
  3. 检查路由模式:进入 Config 确认文件已选中,并在 Home 中将 Global Routing 设为 Config。
  4. 编写精简规则:先加入少量本地规则(如一条精准域名和一条 FINAL),避免直接依赖复杂的远程规则集。
  5. 验证与复测:通过 Test Rule 或查看连接日志观察请求走向,保持网络和节点不变进行交叉验证。
  6. 安全回滚:修改前务必保留配置备份。若改完后出现异常,立即恢复备份文件。

规则不生效怎么办?按现象分流排查

现象优先检查处理方法
写了规则但仍走代理Global Routing 是否为 Config,规则是否被更早的宽泛规则拦截确认当前文件已选中,把精确规则移动到宽泛规则前,再重新访问
配置文件导入了但没有效果文件是否只是出现在列表,是否真正设为当前配置重新进入 Config 选择目标文件,然后回到 Home 检查 Global Routing
Proxy 能用,Config 不能用规则命中、策略名称、FINAL 兜底用 Test Rule 或日志确认命中的规则,再临时删减到最小配置
节点不可用服务器地址、端口、协议、认证信息和当前网络切换到 Proxy 做单独测试;Proxy 也失败时先修复节点连接

连接测试、DNS 解析、规则命中和目标网站访问是四个独立环节。连接测试成功,并不等于每个域名都能按预期分流;日志中出现请求,也不等于目标服务一定返回正常内容。

推荐入口

如果你已经完成 Shadowrocket 规则配置,还需要稳定的跨境办公线路,可在确认需求、设备和合规范围后了解边界云加速的相关方案。

常见问题

Shadowrocket 里 Config 和 Global Routing 的 Config 是一回事吗?

不是。Config 页面主要用于管理和选择配置文件;Home 页面中的 Global Routing → Config 才是启用当前配置规则进行路由。两处都确认后,规则才有机会按预期生效。

国内网站直连、其他网站代理应该怎么写?

常见思路是先放需要明确直连的 DOMAIN 或 DOMAIN-SUFFIX,再放地区或地址范围规则,最后用 FINAL 处理未命中的请求。实际结果还会受到 DNS 解析和规则集完整度影响。

为什么规则写对了,访问结果还是不对?

先确认 Global Routing 是否为 Config,再确认当前文件是否真的被选中;随后检查规则顺序、策略名称和 FINAL。若 Proxy 模式也无法访问,应优先排查节点或网络。

DOMAIN 和 DOMAIN-SUFFIX 有什么区别?

DOMAIN 用于精确匹配一个特定域名,DOMAIN-SUFFIX 用于匹配该域名及其所有子域名。需要只影响一个具体地址时用 DOMAIN,需要覆盖主域名与子域名时用 DOMAIN-SUFFIX。

Shadowrocket 能不能按 iPhone 上的某个 App 单独设置规则?

规则主要依据域名、IP、地区、关键词或请求特征进行匹配。某个 App 使用哪些域名和连接方式决定了其分流结果,因此不能简单把“按 App 分流”理解成直接勾选应用图标,应关注其底层的域名请求是否被规则命中。

修改规则后怎么恢复?

修改前请保留当前配置文件的副本。出现异常时,重新选择备份文件并恢复 Global Routing → Config;确认恢复后,再逐条添加修改,避免同时更换节点和多项规则。

相关阅读

参考资料

  1. App Store:Shadowrocket 产品页面
  2. github.com
  3. en.wikipedia.org