Shadowrocket 规则不生效怎么办?逐项排查流程

一句话回答:按「是否生效 → 是否被抢先命中 → 方向是否写反 → 解析是否偏差」四步排查,每一步都能独立验证,通常在前两步就能定位到原因。

要点速览
  • 先确认改动已经生效:改完规则需要重新连接一次才会应用。
  • 再看顺序:命中即停止,前面的宽泛规则会让后面的具体规则失效。
  • 然后核对方向:直连与代理写反是最容易忽略的低级错误。
  • 最后查解析:解析结果与预期不符时,规则再对也不会命中。

规则不生效很少是客户端故障,绝大多数是配置细节问题。按固定顺序排查,能避免反复试错。

第一步:确认改动已经应用

修改规则后需要重新连接一次,客户端才会加载新配置。仅保存而不重连,实际生效的仍是旧规则。

验证方法是查看当前配置里是否包含刚改的条目;确认存在后再关闭并重新打开连接开关。

第二步:检查是否被前面的规则抢先命中

规则是从上到下匹配、命中即停的。如果一条覆盖全部流量的兜底规则写在前面,后面的所有规则都不会被执行。

处理方式是把具体规则上移到宽泛规则之前,或删除那条过宽的兜底规则。

规则失效的四种原因与处理
原因典型表现处理方式
改动未生效配置里看不到新条目重新连接一次
顺序被抢先走向与规则不符把具体规则上移
方向写反该直连的走了代理核对策略字段
解析偏差规则正确但不命中检查解析结果

第三步与第四步:核对方向与解析

方向写反是常见疏漏:本想让某站点直连,却把策略写成代理。核对时逐条确认策略字段,而不是凭印象。

最后查解析:如果域名实际解析到的地址与规则判断的地址不一致,规则写得再正确也不会命中。这一步可以借助连接记录观察实际访问的 IP。

  • 排查时一次只改一处,改完立刻验证,避免多个改动互相掩盖。
  • 用最简单的域名做验证样本,减少变量干扰。
  • 确认无误仍异常时,导出配置备份后重建一份最小配置做对照。
获取规则分流客户端

规则排查的高频疑问

规则显示保存成功,为什么还是老走向?

保存只是写入配置,生效需要重新连接。关闭并重新打开连接开关后再次验证即可。

怎么知道某条规则有没有被命中?

通过连接记录观察该域名的实际走向,与规则预期做对比;走向不符说明未命中或被前面的规则抢先。

规则越写越多会变慢吗?

条目数量增长会带来一定匹配开销,但日常量级影响很小。真正需要关注的是重复与冲突条目,它们才是排障困难的主因。