Shadowrocket 代理规则怎么设置?完整操作与排查步骤
简答:Shadowrocket 代理规则的关键在于两步:先在 Config 中导入并选中配置文件,再在 Home 页的 Global Routing 里选择 Config。接着按“具体规则在前、宽泛规则在后、FINAL 兜底”的原则编写,并用 Test Rule、日志和实际访问验证是否命中。
定义:Shadowrocket 代理规则,是由匹配条件和处理策略组成的分流规则,用来决定某个域名、IP 或请求应走代理策略、直连策略还是拒绝请求。
先试这三步:让规则模式先正常工作
如果你已经准备好了节点或订阅,不要一上来就修改大量规则。先通过下面三步,确认基础连接和配置模式能正常工作:
- 导入节点或订阅:在 Home 页面中添加订阅或服务器条目,并确保至少有一个节点处于选中状态。订阅负责更新服务器,不等于代理规则。
- 确认配置文件:点击底部导航栏的 Config,导入或下载一个包含
[Rule]区段的配置文件,并确保该文件处于选中状态。 - 启用规则路由:返回 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 放在最前面,第一条精确直连例外就会失效。
速查清单:从零到规则生效的完整排查步骤
- 记录初始状态:记下当前网络、选中的服务器和 Config 文件,每次只改动一项。
- 测试节点:将 Global Routing 设为
Proxy,确认节点本身能正常连通。 - 检查路由模式:进入 Config 确认文件已选中,并在 Home 中将 Global Routing 设为
Config。 - 编写精简规则:先加入少量本地规则(如一条精准域名和一条 FINAL),避免直接依赖复杂的远程规则集。
- 验证与复测:通过 Test Rule 或查看连接日志观察请求走向,保持网络和节点不变进行交叉验证。
- 安全回滚:修改前务必保留配置备份。若改完后出现异常,立即恢复备份文件。
规则不生效怎么办?按现象分流排查
| 现象 | 优先检查 | 处理方法 |
|---|---|---|
| 写了规则但仍走代理 | 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;确认恢复后,再逐条添加修改,避免同时更换节点和多项规则。