规则不生效怎么办?分流不对/直连失效
快速结论
规则不生效的排查路径:1. 确认菜单栏模式为“规则(Rule)”;2. 检查日志定位具体的匹配 Rule;3. 检查规则优先级(从上到下);4. 执行“重载配置”确保更新。
深度排查:为什么 ClashX 的规则会“失灵”?
ClashX 的核心灵魂在于“分流规则”。如果你发现访问国内网站极慢(因为误走了远端代理),或者访问 YouTube 提示连接重置(因为误走了直连),那就说明规则匹配出错了。
第一步:模式校验(最常见原因)
很多用户在进行调试时切换到了“全局模式(Global)”,调试完后忘记切回“规则模式(Rule)”。在全局模式下,配置文件中的所有分流规则都会被忽略,所有流量都会通过你选定的节点发送。
第二步:日志匹配分析
控制面板的日志是“上帝视角”。
- 操作:打开控制面板 -> 点击“日志” -> 刷新那个出问题的网页。
- 观察:如果看到类似
Match Rule: DOMAIN-SUFFIX,google.com,Proxy,说明规则正常。如果看到Match Rule: MATCH,Direct或其他不符合预期的匹配项,你就找到了根源。
第三步:规则顺序与冲突
ClashX 采用的是“先到先得”的原则。
- 示例:如果你在配置文件的最上方写了一条
DOMAIN-KEYWORD,google,DIRECT(谷歌直连),那么即便下方有更详细的代理规则,谷歌的所有访问也会被强制直连。 - 对策:将范围更广的规则(如
GEOIP,CN,DIRECT或MATCH,Proxy)放在配置文件的最底部,而将具体到域名的规则(如DOMAIN-SUFFIX,google.com,Proxy)放在最顶部。
第四步:DNS 缓存干扰
有时虽然规则已改,但 macOS 浏览器依然在使用旧的解析结果。这在使用了 fake-ip 模式时尤为常见。
- 解决:在 ClashX 的控制面板里清理一次缓存,或直接重启浏览器测试。
进阶方案:使用第三方规则集
为了确保分流的精准性,我们不建议用户手写大量规则。
- 订阅远程规则集:通过
rule-providers引入由社区维护的、每日更新的规则。 - ClashX Pro 的增强分流:Pro 版本的内核对大规模规则集的处理更高效,且支持更复杂的逻辑判断(如根据应用进程分流)。
仍未解决?
如果分流规则始终无法按照预期工作,可能是由于配置文件格式不规范导致的内核解析偏差。
常见问题
这通常是因为你在 ClashX 的菜单栏里选错了出站模式。请确认当前模式为“规则(Rule)”,而非“全局(Global)”。
打开控制面板的“日志(Logs)”页面,在访问该网站时观察输出。日志会明确标注匹配到的 Rule 类型及其动作。
ClashX 按照配置文件中 rules 部分从上到下的顺序匹配。一旦匹配成功,就会立即执行,后面的规则将不再生效。
Netflix 的 IP 地址段经常变动。请确保你的订阅配置中包含并启用了最新的第三方维护的 Netflix 规则集。
增强模式会改变 DNS 解析逻辑。如果分流异常,请检查是否在 rules 中正确使用了 IP-CIDR 或 GEOIP 类型的规则。
修改后必须在 ClashX 菜单栏选择“重载配置”或重新启动软件,新规则才会读入内核内存中生效。