Clash 的 rules 不是「按类型分级」,而是「从上往下、命中即止」——写在前面的先匹配,匹配上就不再往下看。所以顺序本身就是优先级,规则类型之间没有任何高低之分。最常见的致命写法是把 GEOIP,CN,DIRECT 放在第一条,它会把后面所有域名规则全部吃掉,表现就是「规则写了一大堆,一条都没生效」。
🔗 快速入口:24 家平台免费测试与注册入口 | IP 检测中心 | 代理格式转换工具
DOMAIN)→ 域名后缀(DOMAIN-SUFFIX)→ 规则集(RULE-SET)→ IP 段(IP-CIDR,加 no-resolve)→ 地域(GEOIP)→ MATCH 兜底。MATCH 必须在最后一行,GEOIP 必须在域名类规则之后。写错顺序不是「效果差一点」,是直接失效。DOMAIN-SUFFIX|某软件整体分流 → TUN + PROCESS-NAME(放最前)|国内站被代理了 → 查 GEOIP 是否被挤到最后|全部走直连 → 看 MATCH 后面跟了谁先建立一个正确的心理模型
把 rules 想成一串 if 判断,从头执行到尾,第一个成立的直接返回、后面的不再执行。这意味着两件事:一是顺序有意义,二是放错位置的规则等于没写,而且不会有任何报错提示——它只是永远轮不到。
这也是排查分流问题唯一有效的思路:不要问「我的规则写对了吗」,要问「这条规则前面有没有别的规则先命中了」。
六种规则类型,什么时候用哪个
| 类型 | 匹配依据 | 精度 | 注意 |
|---|---|---|---|
DOMAIN |
完整域名完全相同 | 最高 | 子域不匹配,要逐条写 |
DOMAIN-SUFFIX |
域名后缀 | 高 | 最常用;写 .com 会误伤一大片 |
DOMAIN-KEYWORD |
域名包含关键词 | 低 | 容易误伤同名字段,且每条都要做字符串匹配 |
IP-CIDR |
目标 IP 段 | 中 | 对域名目标要先解析,务必加 no-resolve |
GEOIP |
按 IP 库判国家 | 粗 | 依赖 IP 库准确度,必须放最后 |
PROCESS-NAME |
发起连接的进程 | — | 只有 TUN 模式拿得到进程信息 |
RULE-SET 是对上面这些的批量封装,本质是「把一个远程规则列表展开成很多条」,位置按它内容的粒度来放。用它比手写几百条更省事,但前提是规则集本身维护得好。
一条能直接用的排序骨架
把规则按下面这个顺序组织,绝大多数场景不会出错:
| 位置 | 写什么 | 为什么在这个位置 |
|---|---|---|
| 1 | PROCESS-NAME(要先分流的软件) |
进程条件最精确,且不受后续域名规则干扰 |
| 2 | DOMAIN / DOMAIN-SUFFIX(必须直连或必须走代理的站) |
精确意图优先于任何粗粒度判断 |
| 3 | RULE-SET(广告拦截、常用分流集) |
批量规则,放在精确规则之后 |
| 4 | IP-CIDR(内网、特定机房段) |
内网段必须直连,且要加 no-resolve |
| 5 | GEOIP,CN,DIRECT |
国内直连,粗粒度兜底之一 |
| 6 | MATCH,代理组名 |
兜底,必须最后一行 |
注意第 4 位的内网段:IP-CIDR,192.168.0.0/16,DIRECT,no-resolve、10.0.0.0/8、172.16.0.0/12 这几条如果缺失,局域网的共享、打印、内网后台会莫名其妙走代理然后失败。
错误一:GEOIP 放第一条,后面全废
这是最常见的一个。目标是域名时,Clash 需要先把域名解析成 IP 才能判 GEOIP;解析出来是国内的 IP,第一条就命中 DIRECT,那么后面所有「让这个站走代理」的域名规则全部轮不到。
表现很有迷惑性:规则写了、语法没错、日志里也没有报错,就是「国内站直连、该走代理的也直连」。这不是规则写错,是顺序错。把 GEOIP 挪到域名规则之后即可。
反过来,如果目标是 IP 地址(很多客户端的 API 请求直接写 IP),域名规则永远匹配不上,只能靠 IP-CIDR 或 GEOIP。理解「这次连接的目标是域名还是 IP」,比死记规则类型有用得多。
错误二:no-resolve 漏写,带来额外的解析和泄漏
IP-CIDR 默认会对域名目标发起一次 DNS 解析,用来拿到 IP 再比对。两个后果:一是每条连接都多一次解析,规则越多越明显;二是这次解析用的可能是本地 DNS,形成 DNS 泄漏——你以为流量走了代理,域名查询却是本地发出去的。
处理方式是给所有不需要精确判定的 IP-CIDR 加 no-resolve,让它在目标本身是域名时直接跳过这条规则。代价是:某个域名如果要靠 IP-CIDR 命中,加了 no-resolve 就永远命不中——所以「必须靠 IP 段命中的目标」不能用这个参数。
另一个相关坑是 fake-ip 模式:开启后域名解析得到的是虚拟 IP,IP-CIDR 和 GEOIP 对域名目标基本失效。这不是 bug,是模式决定的。要按 IP 分流的场景,得用 redir-host 或接受「只有域名规则有效」。
错误三:兜底规则指向了直连
MATCH,DIRECT 一写,所有没被前面规则命中的流量都直连。如果你只加了代理节点、没改兜底,那么「节点显示正常、IP 没变」是必然结果——不是节点没连上,是没有流量被送来。
确认方法:看 MATCH 后面跟的组名,是不是你放代理节点的那个组。不是就改。想只让部分流量走代理,就在前面加针对性的域名规则,兜底保持直连;想让默认全走,就把兜底改成代理组。
怎么确认一条连接命中了哪条规则
Clash 系客户端都有「连接」页,每条活动连接会显示它命中的规则和策略。这是最直接的证据,比猜快得多。配合两步:把日志级别调到 debug 看匹配过程;或者在规则测试功能里输入目标域名,看它最终落到哪个策略。
有一个容易忽略的细节:改了 rules 之后,已经建立的连接不会重新匹配,仍然走旧规则。看到「改完还是不对」时,先把连接页里的活动连接清掉,或者直接重启客户端,再测一次。
这一步的价值在于把「猜」变成「看」——分成「规则没命中」和「命中但线路不通」两种,前者改顺序,后者才需要换 IP。
常见问题
Q:为什么国内网站还是走了代理?
查三处:GEOIP,CN,DIRECT 是否被放在了域名规则之前(要在之后);该站的域名是否被某条 DOMAIN-KEYWORD 先命中;兜底 MATCH 是否指向了代理组且前面没有直连规则。
Q:DOMAIN-SUFFIX 和 DOMAIN-KEYWORD 差别在哪?
前者只匹配域名结尾,写 example.com 能覆盖 www.example.com 但不会匹配 example.com.cn;后者是包含即命中,example 会连 myexample-site.net 一起吃掉。能用前者就别用后者。
Q:写了 IP-CIDR,某个域名还是走代理?
两种可能:目标是域名、而这条规则加了 no-resolve(跳过不匹配);或者开了 fake-ip,域名根本拿不到真实 IP。这类目标改用域名规则。
Q:规则写到几百条会不会变慢?
字符串匹配很快,几百条量级基本感知不到。真正影响速度的是没加 no-resolve 的 IP-CIDR——它会让每条连接都多一次 DNS 解析。
Q:改完规则必须重启吗?
重载配置即可生效,但已建立的连接不会重新匹配。测之前把活动连接清掉,或重启客户端,否则会看到旧行为。
规则配好之后,线路才是变量
分流规则解决的是「哪些流量走代理」,走不走得通、IP 干不干净是另一件事。后者取决于线路本身:协议对不对(Clash 只吃 SOCKS5 / HTTP)、地区能不能指定、是否支持你要的并发。
各家起步价与套餐差异不小,横向对照在代理IP价格对比;协议区别看代理协议导航。配好规则后用IP 检测中心确认出口归属地,能一次排除掉大半「配了没用」的情况。
· Clash 连不上代理?先分清配置错还是线路错
· Clash 怎么用 SOCKS5 代理IP:三种配法与分流优先级
· 24 家代理IP平台起步价横向对照
· 代理协议导航:SOCKS5 / HTTP / L2TP 区别
官网:socks5ip.com.cn|价格中心:/jiagezhongxin/|使用教程:/jiaocheng/
客服微信:17720135827(备用 878989347)|一对一帮选线路,价格不符可免费改价
先算清要几条线,再挑平台 —— 少花冤枉钱,也少踩一次风控。








评论0