Clash Meta 是目前维护最活跃、功能最完整的 Clash 核心分支,它在原版 Clash Premium 内核的基础上大幅扩展了 DNS 策略、规则引擎与协议支持。本文将从零讲解 Clash Meta 的完整配置体系,涵盖 DNS-over-HTTPS、Tun 虚拟网卡、RULE-SET 规则集以及 Provider 订阅管理,帮助你在 2026 年搭建一套真正高性能、可维护的代理环境。
一、Clash Meta 与原版 Clash 的核心区别
在开始配置之前,有必要先厘清 Clash Meta(也称 Mihomo)与原版 Clash 之间的差异,避免直接套用旧配置时踩坑。
原版 Clash 自 2023 年底停止维护,其 Premium 版本提供了 Tun 模式与规则集支持,但更新迟缓,bug 修复周期长。Clash Meta 在此基础上增加了以下能力:
协议扩展:原生支持 VLESS、Reality、Hysteria2、TUIC v5 等新兴协议,无需额外补丁即可使用。这对于需要高速传输或抗检测的用户来说至关重要。
DNS 策略增强:支持 DNS-over-HTTPS(DoH)、DNS-over-TLS(DoT)与 DNS-over-QUIC(DoQ)三种加密解析方式,并可为不同域名指定不同的 DNS 服务器,实现"境内域名走国内 DNS、境外域名走加密 DNS"的分域名解析策略。
规则引擎优化:支持 RULE-SET 外部规则集与按需加载,大幅降低大规则列表的内存占用,并支持规则集自动更新。
二、配置文件基础结构
Clash Meta 使用 YAML 格式的配置文件,默认路径为 ~/.config/clash/config.yaml(macOS/Linux)或 %APPDATA%\clash\config.yaml(Windows)。一个完整的配置文件包含以下几个顶层字段:
# Basic Clash Meta config skeleton
port: 7890
socks-port: 7891
mixed-port: 7892
allow-lan: false
mode: rule
log-level: info
ipv6: false
dns:
enable: true
# DNS configuration (see section 3)
proxies:
# Proxy node list
proxy-groups:
# Proxy group / policy routing
rules:
# Traffic routing rules
proxy-providers:
# Subscription providers
rule-providers:
# External rule sets
mixed-port 同时监听 HTTP 和 SOCKS5 流量,避免分别配置两个端口。mode: rule 表示按规则分流,生产环境应始终使用此模式。
三、DNS 策略:加密解析与分域名路由
DNS 配置是 Clash Meta 最容易误解的部分之一。配置不当会导致国内网站解析走海外 DNS(访问变慢),或境外域名被 DNS 污染(连接失败)。
3.1 基础 DNS 配置
dns:
enable: true
ipv6: false
listen: 0.0.0.0:1053
# Use system resolver as fallback
default-nameserver:
- 223.5.5.5
- 119.29.29.29
# Enhanced mode: redir-host or fake-ip
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
# Encrypted resolvers for foreign domains
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
# Fallback for GFW-blocked domains
fallback:
- https://1.1.1.1/dns-query
- https://dns.google/dns-query
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
fake-ip 模式 是 Clash Meta 最推荐的 DNS 增强模式。它为每个域名生成一个虚假的本地 IP 地址,域名解析请求在代理侧完成,从根本上避免了 DNS 泄漏与污染问题。
3.2 分域名 DNS(nameserver-policy)
如果你希望国内域名使用国内 DNS(速度更快),境外域名使用加密 DNS(防污染),可以使用 nameserver-policy 字段:
dns:
nameserver-policy:
# Domestic domains use Alibaba DNS
"geosite:cn": https://dns.alidns.com/dns-query
# Google services use Google DNS
"geosite:google": https://dns.google/dns-query
四、代理节点与策略组配置
在 proxies 字段中定义你的代理服务器节点。Clash Meta 支持的协议包括 SS、SSR、VMess、VLESS、Trojan、Hysteria、Hysteria2、TUIC 等:
proxies:
- name: "HK-Hysteria2-01"
type: hysteria2
server: hk.example.com
port: 443
password: "your-password"
sni: hk.example.com
skip-cert-verify: false
- name: "JP-VLESS-Reality"
type: vless
server: jp.example.com
port: 443
uuid: "your-uuid"
network: tcp
tls: true
reality-opts:
public-key: "your-public-key"
short-id: "your-short-id"
在 proxy-groups 中组织节点的选择策略。常用策略组类型包括 select(手动选择)、url-test(自动测速)、fallback(故障转移)和 load-balance(负载均衡):
proxy-groups:
- name: "节点选择"
type: select
proxies:
- "自动选速"
- "HK-Hysteria2-01"
- "JP-VLESS-Reality"
- DIRECT
- name: "自动选速"
type: url-test
proxies:
- "HK-Hysteria2-01"
- "JP-VLESS-Reality"
url: http://www.gstatic.com/generate_204
interval: 300
tolerance: 50
五、RULE-SET 外部规则集:精准分流的核心
内联规则列表难以维护,且大量规则会拖慢启动速度。Clash Meta 的 rule-providers 支持从远程 URL 加载规则集并按间隔自动更新,是生产环境最推荐的规则管理方式。
rule-providers:
reject:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
path: ./ruleset/reject.yaml
interval: 86400
cn-domains:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
path: ./ruleset/cn-domains.yaml
interval: 86400
proxy-domains:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
path: ./ruleset/proxy-domains.yaml
interval: 86400
在 rules 字段中引用规则集,并配合 GEOIP 与 MATCH 完成兜底:
rules:
- RULE-SET,reject,REJECT
- RULE-SET,cn-domains,DIRECT
- RULE-SET,proxy-domains,节点选择
- GEOIP,CN,DIRECT
- MATCH,节点选择
REJECT 规则应放在最前面以拦截广告和追踪域名,避免无效请求浪费节点流量。
六、Provider 订阅管理
在实际使用中,大多数用户的节点来自机场订阅链接。Clash Meta 的 proxy-providers 支持直接引用订阅 URL,自动解析其中的节点并注入到策略组中,无需手动复制粘贴节点配置:
proxy-providers:
airport-a:
type: http
url: "https://your-airport.example.com/api/v1/client/subscribe?token=xxx"
path: ./providers/airport-a.yaml
interval: 3600
health-check:
enable: true
url: http://www.gstatic.com/generate_204
interval: 300
然后在策略组中通过 use 字段引用 Provider,而非手动列举节点名称:
proxy-groups:
- name: "自动选速"
type: url-test
use:
- airport-a
url: http://www.gstatic.com/generate_204
interval: 300
tolerance: 50
这种方式的最大优势在于:当机场更新节点时,Clash Meta 会在下次健康检查周期内自动拉取最新节点,无需你手动刷新配置。interval: 3600 表示每小时拉取一次订阅,可根据机场更新频率调整。
七、Tun 模式:接管所有系统流量
传统代理模式只能处理显式设置了代理的应用流量,而 Tun 模式通过创建虚拟网卡接管整个系统的 TCP/UDP 流量,真正实现全局透明代理。这对于不支持代理设置的命令行工具(如 curl、git)或游戏客户端尤为重要。
tun:
enable: true
stack: mixed # gvisor / lwip / mixed (recommended)
dns-hijack:
- any:53
auto-route: true
auto-detect-interface: true
stack: mixed 是 2026 年推荐的 Tun 栈模式,TCP 使用系统栈(性能优),UDP 使用 gVisor 栈(兼容性好),综合表现最佳。开启 Tun 模式需要管理员权限。
八、配置验证与常见问题排查
完成配置后,可通过以下步骤快速验证配置是否生效:
1. 语法检查:Clash Meta 启动时会自动检测 YAML 语法错误,查看日志输出中是否有 ERROR 级别日志,重点关注 DNS 和规则字段的格式问题。
2. DNS 解析测试:在终端执行 curl -v --proxy http://127.0.0.1:7890 https://www.google.com,检查是否正常返回 200 响应。若返回超时,优先排查 DNS fallback 配置与节点连通性。
3. 规则命中检查:Clash Meta 的 RESTful API(默认 http://127.0.0.1:9090)提供了实时连接日志,访问 /connections 端点可查看每条流量命中了哪条规则,便于排查分流异常。
4. 规则集更新失败:如果 RULE-SET 无法从 CDN 拉取,可先将规则文件下载到本地,改用 type: file 模式加载,待网络恢复后再切换回 type: http。
九、选择合适的图形客户端,让配置变得更简单
上述配置内容虽然并不复杂,但手写 YAML 终究有一定门槛——尤其是订阅管理、规则集更新与 Tun 权限配置这几个环节,稍有疏漏就可能导致流量走错或代理失效。如果你希望在保留 Clash Meta 全部能力的同时,免去手动维护配置文件的繁琐,一款设计精良的图形客户端会是更好的选择。
我们的 Clash 客户端 在 Clash Meta 内核基础上提供了可视化的订阅管理、一键式规则集更新、Tun 模式开关,以及跨平台的统一体验(Windows、macOS、Android、iOS、Linux 全覆盖)。它让上面所有复杂的 YAML 配置变成几次点击,同时保留了高级用户手动编辑配置文件的能力。如果你正在寻找一个维护更省心、更新更及时的 Clash 客户端,可以到我们的下载页了解详情。