CClash 下载中心下载入口

配置笔记

Clash 域名规则变多后怎样按用途整理

Clash 域名规则变多后怎样按用途整理。了解适用条件、操作步骤与常见问题的排查方法。

更新于 2026/10/4 · Clash 编辑组

适用条件:规则变多时先分清用途再动刀

当 Clash(mihomo)的 rules 里域名行不断变长,整理的目标是让每一行的用途可读、且仍符合官方匹配顺序,而不是把类型都改成同一种。适用条件是:已能区分精确完整域名、后缀、关键字、通配符、正则以及集合引用,并且改动前保留一份原文。规则将按照从上到下的顺序匹配,顶部优先级更高,因此整理首先是重排与归类,而不是随意插入。

若问题其实是某一主域没覆盖子域,或只是弄不清 DOMAIN 与 DOMAIN-SUFFIX 的范围,应先处理单条规则的类型,而不是在本步骤做整表重构。MATCH 匹配所有请求、无需条件,任何整理方案都应把它留在列表最后;域名规则一旦写到它后面,用途再清楚也不会被执行。

按匹配方式和出站用途拆开列表

官方示例把不同域名类型写成并列条目,例如 DOMAIN,ad.com,REJECT、DOMAIN-SUFFIX,google.com,auto、DOMAIN-KEYWORD,google,auto、DOMAIN-WILDCARD,*.google.com,auto、DOMAIN-REGEX,^abc.*com,PROXY、GEOSITE,youtube,PROXY。整理时可按“用途(拒绝、直连、走某代理组)”分块,块内再按“范围从窄到宽”排列:先 DOMAIN(完整域名),再 DOMAIN-SUFFIX(域名后缀),再关键字、通配符、正则,最后才是 GEOSITE 或大段集合。这样阅读时能看出:越靠下越宽,越靠上越具体。

同一用途不要混用会互相包含的两条。例如已经用 DOMAIN-SUFFIX,google.com,auto 覆盖主域与子域,就不必再为 google.com 重复一条相同策略的 DOMAIN,除非两条策略不同、需要靠优先级把主域拆出去。官方后缀例子还表明 google.com 不会匹配 content-google.com,整理关键字规则时不要把“包含同一串字符”的行与后缀行当成重复项删掉。DOMAIN-WILDCARD 仅支持 * 与 ?,且与配置其它处的 Clash 格式通配符不同,整理时不要把它们合并成一类。

出站用途建议在列表中形成稳定段落:拒绝类(示例中的 REJECT)靠前,以免被后面的代理后缀抢走;定向到具体代理组或 DIRECT 的域名居中;兜底策略只留在 MATCH。逻辑规则 AND、OR、NOT 用于把域名与 NETWORK 等条件组合,官方要求注意括号;整理时把这类复合条件单独成组,避免夹在一长串纯域名之间难以扫读。

用规则集合、子规则收纳以及失败时下一步

当同一用途的域名行已经多到难以在主列表阅读,使用 RULE-SET 引用规则集合(需配置 rule-providers),或使用 SUB-RULE 匹配到子规则(同样注意括号)。判断依据是:主列表每一行仍能一眼看出用途和策略,细节名单进入集合或子规则后,从上到下的优先级仍然成立。不要把 IP 类规则的 no-resolve、src 附加参数套到域名规则上,官方写明它们仅支持关于目标 IP 的规则。

整理是否完成,看三点:MATCH 仍在最后;同一主机名不会被两条相同策略的域名规则重复表述;窄规则在宽规则之前,且拒绝类用途未被后面的后缀覆盖。失败时下一步:若整理后某域名策略改变,从顶部向下找第一条命中它的规则,确认是否把宽规则上移过了。若集合引用不生效,检查是否已配置对应 rule-providers。若子规则未进入,检查 SUB-RULE 的括号。需要回退时用整段 rules 原文覆盖,避免只改一半导致 MATCH 提前或精确行落到无法执行的位置。

https://wiki.metacubex.one/config/rules/

← 返回全部文章