Clash 规则保存了却没分流?先核对正在运行的配置(2026)

这篇从“保存之后流量仍不对”写起。Clash Verge 里按下保存,只表示文件写进去了。正在运行的配置可能仍是旧表,也可能把订阅原来的规则整份换掉。先看合并结果和新连接,再决定要不要改。

规则只处理已经进入客户端的流量。它不能把机房地址变成住宅地址,也不保证流媒体解锁或账号不被风控。

查看扩展配置文档

🧪 保存提示不能当成已经生效

扩展配置和「编辑规则」是两条入口。文档写明,扩展文件里的列表会整表替换,rules 也一样。把几条新规则写进扩展 YAML 的 rules,不是在原表前面加几行,而是用你写下的那张表换掉订阅原表。

文档还写明,mode 由软件设置接管。扩展里写下的模式会在链路末尾被丢掉。要按规则表分流,在软件里切到规则模式,不要在 YAML 里写 mode: rule。

系统代理或 TUN 决定流量进不进客户端。规则模式不会自动接管所有程序。电脑上还没装好客户端时,先看 Windows、macOS 或 Linux 的安装页。

🪟 正在运行的配置里要同时看到这三处

重新应用当前订阅后,打开只读的当前配置窗口。菜单名称会随版本变化,以你这版里查看正在运行配置的入口为准。下面这张图就是那个窗口。红框是画上去的。

Clash Verge 只读当前配置窗口,红框是画上去的,框内为规则集地址
窗口标题是当前配置,并且是只读。红框是画上去的。能看到规则集地址,只表示合并结果里有这些键,还要看下载状态和一条新连接的命中。
  1. 新增的规则集既有定义,也有成功的下载状态和更新时间。
  2. 原订阅规则还在,末尾的 MATCH 还在。若整张表只剩你新写的几行,就是被替换了。
  3. 每条 RULE-SET 的策略名都能对上该订阅里真实存在的代理组。

然后在「连接」里看一条新请求。已经建立的连接可能仍走旧路由,不能用旧连接判断这次修改。

↩️ 规则表被整份替换时怎么收回

若当前配置里原订阅规则不见了,先恢复备份,不要在这张残表上继续加规则。恢复后只做两件事:规则集定义放进当前订阅自己的扩展配置;引用放进同一订阅右键的「编辑规则」前置区。

不要改刷新订阅时会被替换的原始文件,也不要清空已有扩展。全局扩展卡片是另一层。下面这张图是较早的订阅页,红框圈住的是全局扩展覆写,不是当前订阅的「编辑规则」。

较早的 Clash Verge 订阅页,红框圈出全局扩展覆写,地址已打码
红框是画上去的。卡片地址已打码,流量数字只属于这张图。v1.7 起,前置规则改到订阅右键的「编辑规则」,不要把这张旧图里的全局入口当成追加位置。

📁 公开文件该引用哪些,哪些先不要整份直连

下面用的是仓库 release 分支上的公开文本。文件以 payload: 开头。域名文件的 behavior 是 domain,IP 段是 ipcidr,进程名文件是 classical。类型和文件内容对不上时,客户端会拒绝加载。

clash-rules 公开仓库页面,红框是画上去的,框内显示 24.5k stars
红框是画上去的。框里的 24.5k stars 和 99 watching 只属于这张图。页面写着构建在北京时间每天早上 6:30。上游构建完成,不等于你的客户端已经拉到新文件。
文件behavior先不要这样做
applications.txtclassical不要整份送去 DIRECT。名单里有 sing-box、hysteria、shadowsocks,也有 uTorrent、xdman
direct.txt 与 apple.txt、google.txtdomain列表有重叠。谁写在前面,谁先命中
private.txt、lancidr.txtdomain / ipcidr适合放在前面走 DIRECT,避免局域网和路由器域名被送出去
reject.txtdomain只拒绝名单里的域名,不是全部广告都没了
cncidr.txtipcidr这是 IP 段文件,和文档里的 GEOIP,CN 不是同一个东西

若扩展里还没有 rule-providers,可以放进下面这种条目。已经有这个键时,只追加新名称,不要再写一个同名顶层键。名称被占用就换前缀,并同步改引用。interval: 86400 只是每 24 小时请求一次,访问不到地址就不会更新。

rule-providers:
  run-ls-private:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt"
    path: ./ruleset/run-ls-private.yaml
    interval: 86400
  run-ls-reject:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
    path: ./ruleset/run-ls-reject.yaml
    interval: 86400

引用写在「编辑规则」的前置区,不要写进扩展文件的 rules。把「换成真实代理组名」改成该订阅里已经存在的组名。PROXY 不是每个订阅都有。

RULE-SET,run-ls-private,DIRECT
RULE-SET,run-ls-lancidr,DIRECT
RULE-SET,run-ls-reject,REJECT
RULE-SET,run-ls-direct,DIRECT
RULE-SET,run-ls-cncidr,DIRECT
RULE-SET,run-ls-google,换成真实代理组名
RULE-SET,run-ls-proxy,换成真实代理组名
RULE-SET,run-ls-telegramcidr,换成真实代理组名
GEOIP,CN,DIRECT

Apple、iCloud 两类域名没有放进这组默认顺序。先用一个苹果服务试直连或代理,再单独加。多个订阅都要同一套改动时,用官方扩展脚本,见 扩展脚本文档。不要和编辑器方法叠在同一个订阅上。已有 main 时并进去,不要再定义一个。

🎯 组名和模式写错时,连接日志会怎么显示

策略名对不上时,核心校验或加载日志会报错,新连接也不会进你以为的那个组。把名称从该订阅的代理页复制过来,不要手打一个相近的词。

软件仍停在全局或直连时,连接日志不会按你刚加的规则表分流。先切到规则模式,再发一条新请求。规则集地址访问失败时,名字可以出现,下载状态仍是失败。这时不要把 86400 理解成已经更新。

📱 手机菜单不要照电脑上的位置找

右键「编辑规则」是 Clash Verge 的入口。Android 上的 Clash 有自己的规则位置,不能按电脑菜单找。安装和导入见 Android 订阅配置。

🩹 只改一条再测,不要继续叠加

某个域名和预期出口不一致时,在「连接」里看它命中了哪一条。被更靠前的直连或拒绝截走,就只为这个域名加一条更靠前的规则。

所有站点一起异常时,恢复备份。常见原因是扩展 YAML 写了 rules,或代理组名称不存在。恢复后只保留规则集定义,把引用放回前置区,再测一条新连接。

最后更新于:2026/11/2 17:28

贡献者:Yunmoo

评论

还没有评论,来说点什么吧。

发表评论

评论提交后需经审核才会显示。