Shadowrocket 配置规则:从导入到生效的设置与排查方法
简答:Shadowrocket 配置规则的关键是:启用正确的配置文件,把 Global Routing 切换到 Config,再按“具体规则在前、FINAL 在后”的顺序匹配。完成后用 Test Rule、日志和实际访问分别确认规则命中与连接结果。
定义:Shadowrocket 配置规则,是写在配置文件 Rule 区段中的匹配条件与处理策略,用于决定请求走代理、直连或拒绝。
先试这一步:确认配置文件和 Global Routing
如果你已经导入节点或订阅,但规则没有生效,先不要继续添加规则。回到 Shadowrocket 的 Home 页面,检查当前连接开关、已选服务器和 Global Routing;如果要使用分流规则,必须选择 Config,而不是 Proxy 或 Direct。然后进入 Config,确认你编辑的文件就是当前启用的配置文件。
Shadowrocket 是独立的网络客户端,不包含代理服务或服务器资源,App Store 页面也明确说明用户需要自行提供配置。其功能包括按域名、域名后缀、关键词、CIDR 地址范围和 GeoIP 等条件配置规则,并可从 URL 或 iCloud Drive 导入规则文件。App Store 产品说明 apps.apple.com
| 选项 | 作用 | 适合什么时候使用 |
|---|---|---|
| Config | 按照当前配置文件中的 Rule 顺序处理请求 | 日常分流和规则验证 |
| Proxy | 用于临时比较代理路径 | 判断服务器路径是否能连通 |
| Direct | 使用直连路径 | 与代理结果做对照 |
切换到 Proxy 或 Direct 只能帮助定位问题,不能代替规则验证。测试完成后,要切回原本计划使用的模式。
配置文件、节点订阅和规则订阅不是一回事
初次配置时最容易混淆的是四个对象:
- 服务器条目:保存单个节点的地址、端口、协议和认证信息。
- 节点订阅:用于批量获取或更新服务器条目。
- 配置文件:保存 General、Rule、Hosts、URL Rewrite 等配置内容。
- 规则订阅:通常提供一组规则或规则集,需要被配置文件引用或加入 Rule 区段。
导入节点订阅不会自动生成适合你需求的分流规则;添加配置文件也不等于它已经被启用。建议每次只改一个对象:先确认服务器可以连接,再设置配置文件,最后修改规则。远程配置可能在更新时覆盖本地改动,因此编辑前应先保存一份可恢复的副本。
在 App Store 的功能说明中,规则导入、服务器配置、DNS、URL Rewrite 和 HTTPS 解密被列为不同能力,不能把它们当作同一个设置入口。App Store 版本与功能记录 apps.apple.com
基础 Rule 示例:具体规则放前面,FINAL 放最后
下面是一份用于理解结构的最小示例。example.com 只是占位域名,PROXY、DIRECT 和 REJECT 必须与你当前配置中的策略名称一致;如果你的配置使用了自定义策略组,就要替换成实际存在的名称。
[Rule]
DOMAIN,example.com,PROXY
DOMAIN-SUFFIX,example.net,DIRECT
DOMAIN-KEYWORD,ads,REJECT
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
FINAL,DIRECT- DOMAIN:匹配一个明确的完整域名,适合精确例外。
- DOMAIN-SUFFIX:匹配域名后缀及其子域名,范围比 DOMAIN 更宽。
- DOMAIN-KEYWORD:匹配域名中包含的关键词,容易误匹配,使用时应谨慎。
- IP-CIDR:匹配 IPv4 地址段;
IP-CIDR6用于 IPv6 地址段。 - GEOIP:按 IP 地理数据库进行匹配,结果受数据库和解析方式影响。
- PROXY、DIRECT、REJECT:分别表示代理、直连和拒绝请求。
- FINAL:处理前面没有匹配到的请求,通常放在规则末尾。
规则通常从上到下检查,先匹配到的规则会影响后续处理。因此,精确域名应放在宽泛后缀或关键词规则前,例外规则应放在可能覆盖它的宽规则前,FINAL 不要放在普通规则之前。
照着做:导入配置并让规则真正生效
- 在 Home 页面确认已有可用的服务器条目;如果只有规则文件,没有服务器或订阅,规则本身不能建立连接。
- 进入 Config,导入已有的配置文件或规则文件。来源不明的远程配置不要直接覆盖当前可用文件。
- 打开配置文件的 Rule 区段,检查规则格式、策略名称和规则顺序。保存前先复制原文件内容,便于回滚。
- 回到 Home,打开 Global Routing,选择 Config;再次进入 Config,确认刚才编辑的文件处于启用状态。
- 重新建立连接后,使用 Test Rule 或类似规则测试入口检查目标域名命中了哪一条规则;如果界面提供连接日志,也要查看实际策略。
- 用同一个网络、同一个目标和同一个服务器做对照测试。不要同时更换节点、配置文件、DNS 和路由模式,否则无法判断真正起作用的改动。
规则命中只说明匹配阶段完成,不代表目标一定能打开。若规则显示为 PROXY 但访问失败,还要继续检查服务器参数、认证、DNS、网络质量和目标服务本身。
规则不生效时,按这个顺序排查
| 现象 | 优先检查 | 处理方法 |
|---|---|---|
| 修改后完全没有变化 | Global Routing 是否为 Config | 切换到 Config,并确认当前启用的是刚修改的文件。 |
| 某个域名总是走错策略 | 规则顺序和实际请求域名 | 把更具体的 DOMAIN 规则移到宽泛规则前,确认实际访问的主机名。 |
| 只有部分页面打不开 | 页面依赖的其他域名 | 在连接日志中找失败请求,不要只修改首页域名规则。 |
| 配置保存后又恢复原样 | 远程配置更新或编辑了非当前文件 | 确认当前文件和更新来源,保存副本后再修改。 |
| 规则显示命中但仍无法连接 | 服务器、DNS 和目标服务 | 暂时切换 Proxy 做对照,再单独检查服务器路径和域名解析。 |
排查时建议记录四项信息:当前网络、Global Routing 模式、启用的配置文件、实际测试域名。每次只改一个条件,并在改动后重新发起请求。不要把旧连接、缓存页面或后台同步结果当成新的规则测试结果。
如何回滚,避免远程配置覆盖本地修改
修改前把当前配置文件复制到安全位置,并给文件标注日期或用途。修改后如果出现解析错误、连接异常或规则大面积失效,先恢复原文件,再确认能否正常连接。确认基线恢复后,再只加入一条需要的规则。
如果使用远程规则或远程配置,先确认它是规则集、完整配置还是节点订阅,并查看更新后哪些内容发生了变化。不要把一份无法阅读或无法说明来源的完整配置直接覆盖现有文件。需要分享排障信息时,也不要公开订阅链接、身份凭据或包含个人信息的日志。
最后核对:2026-10-26。Shadowrocket 的版本、菜单名称和可用功能可能随 App 更新变化;本文只依据可核验的 App Store 产品信息和通用配置逻辑整理,具体界面以设备当前显示为准。
相关指南
如果你还没有完成 iPhone 上的客户端基础配置,可以先查看iPhone 客户端配置与连接排查;如果规则已经配置但仍然无法连接,再查看连接问题排查方法,把规则匹配问题与网络连接问题分开处理。
常见问题
Shadowrocket 里的 Config、Proxy、Direct 有什么区别?
Config 按当前配置文件中的 Rule 处理请求;Proxy 用于临时比较代理路径;Direct 用于直连对照。要验证分流规则,必须回到 Config。
为什么我添加了规则,但 Shadowrocket 仍然没有按规则连接?
先检查 Global Routing 是否选择 Config,再确认编辑的配置文件已启用。之后检查规则顺序、实际请求域名和策略名称,最后重新发起请求。
DOMAIN、DOMAIN-SUFFIX 和 DOMAIN-KEYWORD 怎么选?
DOMAIN 用于精确域名,DOMAIN-SUFFIX 用于域名及其子域名,DOMAIN-KEYWORD 用于包含某个关键词的域名。关键词匹配范围最宽,误匹配风险也更高。
FINAL 应该放在 Shadowrocket 规则的什么位置?
FINAL 通常放在普通规则最后,用于处理没有命中前面规则的请求。如果提前放置,后面的普通规则可能无法得到预期结果。
规则命中了 PROXY,但网站还是打不开,说明规则写错了吗?
不一定。规则命中只代表匹配完成,还要继续检查服务器参数、认证、DNS、网络路径和目标服务。可以暂时用 Proxy 模式做对照,再恢复 Config 检查实际规则。