Clash 配置文件结构详解:分流规则到底是怎么生效的

💡 声明:本文部分链接可能包含推广代码,通过这些链接注册不会增加您的成本,但能支持我们产出更多独立评测。
发布于: 2026年 | 分类: 软件下载 | 作者: Clash冲突编辑部

主题目录

很多人用 Clash 时只会切换节点,遇到「某个网站走错线路」就束手无策。理解配置文件的结构后,这类问题基本都能自己改。这里以 YAML 配置为例说明各部分的作用。

一、配置文件的几个顶层字段

一份 Clash 配置主要由这几块组成:

port: 7890            # HTTP 代理端口
socks-port: 7891      # SOCKS5 代理端口
mode: rule            # rule / global / direct
log-level: info

proxies:              # 节点列表
proxy-groups:         # 节点分组与选择策略
rules:                # 分流规则,自上而下匹配

其中 proxies 通常由订阅自动填充,你手动要改的一般是 proxy-groups 和 rules 两部分。

二、rules 的匹配顺序决定一切

rules 是一个有序列表,自上而下逐条匹配,命中第一条就停止。这个「短路」特性是理解分流的关键——规则写反了顺序,后面的永远不会生效。

rules:
  - DOMAIN-SUFFIX,google.com,PROXY
  - DOMAIN-KEYWORD,github,PROXY
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

常用规则类型:DOMAIN-SUFFIX 匹配域名后缀,DOMAIN-KEYWORD 匹配域名中的关键词,IP-CIDR 匹配 IP 段,GEOIP 按 IP 归属国家匹配,MATCH 是兜底规则必须放在最后。

一个常见错误是把 GEOIP,CN,DIRECT 写在了自定义规则前面。这会导致所有解析到国内 IP 的域名都直连,你后面单独写的代理规则就失效了。

三、proxy-groups 的策略选择

分组决定了规则命中后具体用哪个节点。几种常见类型:

select——手动选择,你在客户端界面上点哪个就用哪个。

url-test——自动测延迟选最快的,适合日常使用。可用 interval 设定重测间隔,tolerance 设定容差(避免延迟接近时频繁切换)。

fallback——按顺序使用,当前节点不可用才切下一个。适合对稳定性要求高、不希望频繁换 IP 的场景,比如已登录的账号服务。

proxy-groups:
  - name: PROXY
    type: url-test
    url: http://www.gstatic.com/generate_204
    interval: 300
    tolerance: 50
    proxies: [香港01, 日本02, 新加坡03]

注意 url-test 会周期性切换出口 IP。如果你在用某些对 IP 变动敏感的服务(如已登录的 AI 工具),把这类流量单独指向一个 selectfallback 分组更稳妥。

一键获取官方最新加速方案 2026年机场推荐