← 返回 96110.buzz 本地视觉备份 首页

Shadowrocket 规则不生效或 TUN 断网?先按这条链排查

更新于 2026-10-23 · 96110.buzz

简答:规则不生效先确认 Global Routing 为 Config、目标配置已启用且 FINAL 在末尾;TUN 断网先恢复原代理类型,再逐项检查 DNS、局域网排除和系统 VPN 权限。

定义:Shadowrocket 规则决定请求匹配后走 PROXY、DIRECT 或 REJECT,TUN 模式则改变连接进入客户端的网络接口,二者不是同一个开关。

先看 30 秒速查卡:规则问题还是 TUN 路径问题

规则不生效时,先把 Global Routing 设为 Config,确认目标配置文件已使用,并检查具体规则是否排在宽泛规则前、FINAL 是否位于末尾。TUN 开启后断网时,先恢复开启前的代理类型,再测试同一个目标;不要同时修改规则、DNS 和路由参数。

进入详细设置前的快速判定
现象第一步结果如何判断下一步
Proxy 能用,Config 不能用回到 Config,查看活动配置和命中规则如果 Proxy 正常而 Config 异常,优先怀疑规则、策略或 FINAL检查规则顺序、策略名称和目标域名
开启 TUN 后所有应用断网恢复原代理类型并重新连接恢复后正常,说明变化与 TUN 路径、DNS 或系统 VPN 权限有关一次只改一个 TUN 相关参数
公网正常,局域网设备打不开检查私有网段是否被排除或设为 DIRECT公网与局域网结果不同,优先查局域网路由和 iOS 本地网络权限确认实际 Wi-Fi 网段,不要盲目排除整个地址范围
配置文件改了但没有效果重新确认该文件是否为活动 Config文件存在或编辑器打开,不代表它正在控制连接保存、启用、断开并重新连接后再测

本文与 Shadowrocket 项目及其开发者无隶属关系。App Store 页面将 Shadowrocket 描述为基于规则的网络工具,并说明它不提供代理服务或服务器资源;具体菜单名称和功能表现请以设备实际显示为准。参考:Shadowrocket App - App Store。

先分清服务器、Config、规则和 Global Routing

服务器或订阅主要提供连接所需的节点信息;Config 是规则、DNS 和其他配置的载体;规则负责把请求匹配到某个策略;Global Routing 决定当前使用 Config、Proxy 还是 Direct。导入节点不等于导入规则,导入配置文件也不等于已经选中它。

Shadowrocket 四个层次的作用
对象解决什么问题常见误判检查方法
服务器或订阅提供地址、端口、协议和认证信息节点出现在列表中就代表一定可用在 Home 手动选择节点并建立连接
Config保存 General、Rule、DNS 等配置文件出现在列表中就代表已经生效确认文件被选中并完成使用或编译
规则按域名、IP 或 GeoIP 匹配策略写入一条规则就会覆盖所有相关请求查看实际请求、命中规则和应用策略
Global Routing选择 Config、Proxy 或 Direct 路由方式切换模式能修复节点地址或认证错误分别做 Config、Proxy、Direct 对照测试

第三方使用指南通常将 Config、Proxy、Direct 解释为三种路由模式:Config 按活动配置的规则处理,Proxy 用于通过选定代理路径测试,Direct 用于比较直连结果。它们改变的是请求如何路由,不会自动修复失效节点、错误认证字段或过期订阅。参考:Shadowrocket Quick Start(第三方使用指南)。

规则怎么写:具体在前,宽泛在后,FINAL 放末尾

规则排查的核心是“先确认匹配对象,再确认策略”。常见类型包括 DOMAIN、DOMAIN-SUFFIX、DOMAIN-KEYWORD、IP-CIDR 和 GEOIP;PROXY、DIRECT、REJECT 是匹配后的处理策略。具体域名应放在更宽泛的关键词或后缀规则之前,FINAL 用于处理前面没有匹配到的请求,通常放在规则末尾。

常见 Shadowrocket 规则类型
类型适用场景示例注意事项
DOMAIN只匹配一个确切域名DOMAIN,example.com,PROXY不应默认理解为覆盖全部子域名
DOMAIN-SUFFIX匹配域名及其子域名DOMAIN-SUFFIX,example.com,PROXY不要写协议、端口或网页路径
DOMAIN-KEYWORD按域名关键词匹配DOMAIN-KEYWORD,example,DIRECT范围较宽,可能误匹配,应放在更具体规则之后
IP-CIDR匹配 IPv4 地址段IP-CIDR,192.168.0.0/16,DIRECT,no-resolve只覆盖 IPv4;地址段应按实际网络确认
GEOIP按 IP 地理数据库分类GEOIP,CN,DIRECT按 IP 分类,不等于按网页语言或账号地区判断
FINAL处理未匹配请求FINAL,DIRECT策略应按自己的分流目标选择,不能照抄

下面是用于结构验证的最小示例,example.com 是示例域名,请替换为你要测试的域名;PROXY 必须对应已导入且可用的策略。示例不是完整配置,也不代表所有用户都应该使用 FINAL,DIRECT。

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

这里的 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16 是常见私有地址范围示例;192.168.0.0/16 只覆盖 192.168.x.x,不代表所有局域网。若你的实际 Wi-Fi 网段不同,应先查看路由器或设备分配的地址,再决定是否加入规则。

规则语法和策略顺序可参考社区配置资料,但这些资料不是已核实的开发者官方文档。参考:GitHub - Shadowrocket config files、LOWERTOP/Shadowrocket Wiki。

开启 TUN:先确认节点和 Config,再只改一个变量

  1. 在 Home 选择一个已经手动验证可用的节点,先不要改 DNS 或规则。
  2. 进入 Config,确认目标配置文件已选中;如果配置来自 URL,先导出或复制一份作为备份。
  3. 回到 Home,将 Global Routing 设为 Config,访问一个固定测试目标,记录结果。
  4. 进入“设置 > 代理 > 代理类型”,如果当前版本显示 None,可将其作为 TUN 模式测试入口;若没有该选项,不要自行猜测字段。
  5. 允许系统添加或使用 VPN 配置,重新连接后只测试一个网页或一个应用。
  6. 如果 TUN 后断网,立即恢复原代理类型;网络恢复后,再分别测试 DNS、局域网排除和节点连接。

社区配置资料把“代理类型 None”与 TUN 模式对应,并将其关联到 compatibility-mode=3。但该字段的界面位置、支持情况和具体表现可能随应用版本变化,因此应把它当作社区参数说明,不应当作所有版本的固定操作路径。参考:Shadowrocket config files、Lᴜᴄʏ's Tool:常见问题与附录。

界面选项与纯文本字段对照
界面或现象可能对应的字段是否建议直接编辑判定标准
代理类型 Nonecompatibility-mode=3社区说明,版本行为未核实;优先使用界面同一测试目标在重新连接后能访问
DNS 覆写dns-server可在界面配置;纯文本字段需保持格式正确域名能解析,且解析失败不被误判为节点故障
局域网排除 TUNtun-excluded-routes先确认实际私有网段,再小范围修改公网访问正常,局域网设备也能按预期访问
代理接口绕过列表skip-proxy字段作用与 TUN 的组合行为需按当前版本验证只观察目标应用是否恢复,不把它等同于 DIRECT
指定流量进入 TUNtun-included-routes通常不作为第一步;社区参数说明,未核实通用行为只有在明确知道目标路由缺失时才做对照

局域网、skip-proxy 与 tun-excluded-routes:不要把“绕过”混成一件事

skip-proxy 主要影响代理接口的绕过列表。社区配置资料将它描述为让指定域名或地址不经过代理接口,但在 TUN 模式下的实际行为可能受当前版本和其他路由设置影响,本文不把它等同于 DIRECT,也不把“仍由 TUN 接管”作为所有版本都成立的结论。

tun-excluded-routes 是把指定 IP 段排除出 TUN。局域网设备不可访问时,先确认实际私有网段是否已经加入排除,或者是否有对应的 DIRECT 规则;不能把“局域网被排除”直接当成错误。真正需要警惕的是把本应进入代理的目标网段误加入排除,导致规则看似存在但请求绕开了预期路径。

tun-included-routes 用于增加进入 TUN 的指定路由。它通常不适合作为第一步排障手段,因为范围写错可能影响本地网络和其他地址。以上字段来自社区配置说明,具体版本兼容性应以实际测试为准。参考:Shadowrocket config files。

iOS 本地网络权限可按“设置 > 隐私与安全性 > 本地网络 > Shadowrocket”检查,路径可能随系统版本变化。如果列表中没有该项目,先让应用触发一次局域网访问请求,再返回系统设置查看。

DNS、IPv6、UDP 和 QUIC:按现象逐项验证

DNS 只负责解析地址,规则决定请求采用什么策略;DNS 修改不能修复节点认证错误、失效订阅或不可达服务器。App Store 页面确认 Shadowrocket支持规则匹配、DNS 相关能力和 IPv6 等功能,但具体配置字段仍应以当前应用界面或已验证的配置资料为准。参考:Shadowrocket App - App Store。

远程配置更新可能覆盖本地修改:先备份再编辑

如果配置文件通过 URL 导入,更新配置时可能用远程内容覆盖本地编辑。订阅更新、配置更新和规则集更新也可能是不同动作,不能因为节点订阅更新成功,就认为活动 Config 的 Rule 部分已经更新。

  1. 在编辑前复制或导出原配置,保留一个不修改的基线文件。
  2. 记录活动文件名、Global Routing 状态和关键规则位置。
  3. 一次只改一个字段或一组相邻规则,保存后重新选择该文件。
  4. 重新连接,使用新的请求验证,不要只观察已经打开的网页或长连接。
  5. 需要长期保留的本地规则,放在自己维护的本地副本或包含配置中,更新远程文件后重新核对。

社区资料明确提示,远程配置的“更新配置”可能覆盖本地修改;因此修改前备份不是可选装饰,而是恢复路径的一部分。参考:GitHub:shadowrocket README、Lᴜᴄʏ's Tool:配置文件。

最终排查顺序:用 A、B 两次测试定位问题层级

  1. A 测试:Proxy。选择已知可用节点,Global Routing 暂时设为 Proxy,访问同一个测试目标。若仍失败,先查节点、系统 VPN 权限或基础网络。
  2. B 测试:Config。切回 Config,确认活动文件和目标规则,重新发起同一个请求。若 A 成功、B 失败,优先查规则顺序、策略名称、DNS 和 FINAL。
  3. C 测试:TUN。在 A 或 B 已经稳定的前提下,只切换代理类型或 TUN 入口。若恢复原代理类型后网络恢复,优先查 TUN 相关字段、DNS、局域网排除和系统权限。
  4. D 测试:局域网。分别访问公网目标和同一 Wi-Fi 下的局域网设备,确认是全部断网还是只有私有地址失败。

每次测试都使用相同网络、相同节点和相同目标,并在改变一个变量后断开再重新连接。不要公开订阅地址、密码、UUID、证书或包含账号信息的完整配置文件。若当前版本没有对应菜单,或社区字段与实际行为不一致,应标记为未核实,而不是用猜测值覆盖整份配置。

常见问题

Shadowrocket 里 Config、Proxy、Direct 应该选哪个?

日常按规则分流时使用 Config;需要暂时绕开规则测试节点时使用 Proxy;需要比较直连能力时使用 Direct。测试完成后恢复原来的路由模式。

Shadowrocket 开启 TUN 后断网,最先恢复什么?

先恢复开启 TUN 前的代理类型或兼容设置,确认网络恢复后,再依次检查系统 VPN 权限、节点、DNS 和局域网排除,不要同时修改多项。

为什么 DOMAIN 规则没有匹配到子域名?

DOMAIN 通常针对确切域名,不能直接理解为覆盖全部子域名。需要覆盖主域名及其子域名时,可检查是否应使用 DOMAIN-SUFFIX,并确认规则位于更宽泛规则之前。

局域网设备打不开,是不是 tun-excluded-routes 配错了?

不一定。局域网不可达时,应先确认实际私有网段是否已加入排除或对应 DIRECT 规则;排除局域网本身通常是为了让它直连。真正的风险是把需要代理的目标网段误排除。

skip-proxy 和 tun-excluded-routes 有什么区别?

skip-proxy 主要影响代理接口的绕过列表;tun-excluded-routes 是把指定地址段排除出 TUN。两者在不同版本和 TUN 状态下的组合行为可能不同,不能把 skip-proxy 直接当作 DIRECT。

修改远程 Config 后,为什么本地规则消失了?

远程配置更新可能覆盖本地编辑。修改前应先复制或导出原文件;更新后重新检查 Rule、General、DNS 和 FINAL,并把长期保留的规则放入自己维护的本地副本。

TUN 模式等于全局代理吗?

不完全等同。TUN 改变连接进入客户端的接口,最终路径仍可能受到 Global Routing、规则策略、DNS、排除路由、节点能力和系统权限影响。

参考资料

  1. Shadowrocket App - App Store
  2. GitHub - Shadowrocket config files
  3. LOWERTOP/Shadowrocket Wiki
  4. GitHub:shadowrocket README
  5. Lᴜᴄʏ's Tool:配置文件(doc.repcz.link)
  6. Lᴜᴄʏ's Tool:常见问题与附录(doc.repcz.link)
  7. Shadowrocket Quick Start(第三方使用指南)(shadow-tunnel.com)