Clash元配置(通常指 Clash.Meta 或 mihomo 核心)是许多高级代理客户端(如 Clash Verge、FlClash、Hiddify 等)的底层配置文件。它基于 YAML 格式,定义了节点列表、代理策略组、规则集以及全局行为。
本文重点解决用户在使用支持 Clash 元核心的客户端时,如何正确理解配置结构、手动修改策略组、添加自定义规则以及排查因格式错误导致的连接失败问题。
配置文件的核心结构与读取逻辑
Clash 配置文件是一个标准的 YAML 文件,客户端启动时会读取该文件并加载其中的所有设置。理解其层级结构是手动配置的前提。
一个标准的 Clash 元配置文件通常包含以下主要层级:
• global-config:全局设置,如端口、日志级别、TUN 模式开关等。
• proxies:节点列表,包含所有可用的代理节点信息。
• proxy-groups:代理策略组,如“自动选择”、“手动选择”、“负载均衡”等。
• rules:规则列表,定义流量如何匹配节点。
• dns:DNS 设置,用于优化解析速度或绕过污染。
在手动编辑配置文件时,必须严格遵循 YAML 的缩进规范。通常使用两个空格作为一级缩进,严禁使用 Tab 键,否则会导致配置文件解析失败。
🔥 推荐:适合 Clash 用户的稳定节点方案
如果你正在使用 Clash,建议优先选择订阅更新稳定、节点延迟较低、规则配置清晰的方案,避免免费节点失效和速度波动。
代理策略组(Proxy Groups)的配置方法
代理策略组是 Clash 配置中最核心的部分,它决定了流量最终通过哪个节点出站。常见的策略组类型包括 `select`(手动选择)、`url-test`(自动测速)和 `fallback`(故障转移)。
1. 手动选择策略组(Select)
手动选择策略组允许用户自由切换出口节点。配置示例如下:
“`yaml
proxy-groups:
• name: 手动选择
type: select
proxies:
• 节点A
• 节点B
• DIRECT
“`
在此配置中,`DIRECT` 表示直连,即不经过代理。用户可以在客户端界面中手动选择这三个选项之一。
2. 自动测速策略组(URL-Test)
自动测速策略组会根据设定的间隔时间对成员节点进行延迟测试,并自动选择延迟最低且可用的节点。
“`yaml
proxy-groups:
• name: 自动选择
type: url-test
url:
interval: 300
tolerance: 50
proxies:
• 节点A
• 节点B
“`
• url:用于测速的测试地址。推荐使用 `,该地址返回 204 状态码,负载极小,测速准确。
• interval:测速间隔,单位为秒。建议设置为 300 秒(5 分钟),避免过于频繁的测速占用带宽。
• tolerance:容差值,单位为毫秒。当新节点的延迟低于当前节点超过该值时,才会触发切换,防止频繁抖动。
3. 负载均衡策略组(Load-Balance)
负载均衡策略组会将流量分散到多个节点上,适合需要多节点并发加速的场景。
“`yaml
proxy-groups:
• name: 负载均衡
type: load-balance
strategy: consistent-hashing
url:
interval: 300
proxies:
• 节点A
• 节点B
“`
• strategy:负载均衡策略,`consistent-hashing` 表示一致性哈希,确保同一 IP 的流量始终走同一节点,避免会话断开。
自定义规则(Rules)的编写与优先级
规则决定了流量如何匹配代理策略组。Clash 的规则引擎支持多种匹配类型,如域名、IP 段、域名后缀等。
规则匹配类型说明
| 规则类型 | 匹配条件 | 示例 | 说明 |
|---|---|---|---|
| DOMAIN | 精确域名匹配 | `DOMAIN, example.com, PROXY` | 匹配指定域名 |
| DOMAIN-SUFFIX | 域名后缀匹配 | `DOMAIN-SUFFIX, google.com, PROXY` | 匹配以指定后缀结尾的域名 |
| DOMAIN-KEYWORD | 域名关键词匹配 | `DOMAIN-KEYWORD, youtube, PROXY` | 匹配包含指定关键词的域名 |
| IP-CIDR | IP 地址段匹配 | `IP-CIDR, 1.1.1.1/32, PROXY` | 匹配指定 IP 地址或网段 |
| GEOIP | 国家/地区匹配 | `GEOIP, CN, DIRECT` | 匹配国家/地区代码 |
规则优先级与编写逻辑
Clash 的规则引擎从上到下依次匹配,一旦匹配成功即停止后续规则检查。因此,规则的顺序至关重要。
• 特殊规则优先:如 `PROXY`、`REJECT`、`DIRECT` 等全局特殊规则应放在前面。
• 精确匹配优先:`DOMAIN` 规则应优先于 `DOMAIN-SUFFIX` 和 `DOMAIN-KEYWORD`。
• 通用规则后置:如 `GEOIP`、`FINAL`(默认规则)应放在最后。
示例规则配置:
“`yaml
rules:
# 直连国内常见服务
• DOMAIN-SUFFIX, baidu.com, DIRECT
• DOMAIN-SUFFIX, taobao.com, DIRECT
# 代理特定服务
• DOMAIN-SUFFIX, google.com, 自动选择
• DOMAIN-SUFFIX, youtube.com, 自动选择
# 默认规则
• MATCH, 手动选择
“`
在上述示例中,`MATCH` 是 Clash 元核心支持的通配符规则,表示匹配所有未匹配到的流量,并将其指向指定的代理策略组。
常见配置错误与排查方法
手动修改配置文件时,常见的错误包括 YAML 格式错误、规则逻辑冲突、节点名称不匹配等。以下是常见问题及解决方法。
1. YAML 格式错误
现象:客户端无法加载配置文件,提示“解析失败”或“格式错误”。
原因:
• 使用了 Tab 键代替空格缩进。
• 缩进层级不一致。
• 使用了中文引号或特殊字符。
• 注释符号 `#` 后缺少空格。
解决方法:
• 使用专业的 YAML 编辑器或 VS Code 等支持语法高亮的编辑器。
• 确保所有缩进使用两个空格。
• 检查引号的使用,字符串通常使用单引号或双引号包裹。
• 在 `#` 注释后添加一个空格。
2. 规则逻辑冲突
现象:部分网站无法通过代理访问,或所有流量都走了直连。
原因:
• 规则顺序错误,导致特定域名被前面的规则匹配为 `DIRECT`。
• 使用了错误的规则类型,如用 `DOMAIN` 匹配子域名范围。
解决方法:
• 检查规则顺序,确保特殊规则在前,通用规则在后。
• 使用 `DOMAIN-SUFFIX` 或 `DOMAIN-KEYWORD` 进行更灵活的匹配。
• 在客户端中启用“调试模式”或“日志模式”,观察流量匹配的实际规则。
3. 节点名称不匹配
现象:代理策略组中显示节点名称,但客户端中无法选择或显示为空。
原因:
• 配置文件中的节点名称与策略组中引用的名称不一致。
• 节点名称包含特殊字符或空格,导致解析错误。
解决方法:
• 确保策略组 `proxies` 列表中引用的节点名称与 `proxies` 列表中定义的 `name` 完全一致。
• 避免使用空格或特殊字符作为节点名称,建议使用英文字母、数字和下划线。
高级功能:DNS 设置与 TUN 模式
Clash 元核心支持高级的 DNS 配置和 TUN 模式,可以进一步提升网络体验。
DNS 设置
正确的 DNS 设置可以避免 DNS 污染,提高解析速度。
“`yaml
dns:
enable: true
listen: 0.0.0.0:1053
enhanced-mode: fake-ip
nameserver:
•
•
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
• “*.lan”
• “*.localdomain”
• “*.example”
• “*.localhost”
• “*.test”
“`
• enable:启用 DNS 模块。
• listen:DNS 监听地址,通常设置为本地回环地址。
• enhanced-mode:增强模式,`fake-ip` 是推荐选项,可以加快 DNS 解析速度并防止 DNS 泄漏。
• nameserver:上游 DNS 服务器,建议使用 HTTPS 或 DoT 协议的 DNS 服务,如阿里云 DNS 或 114DNS。
• fake-ip-filter:Fake-IP 过滤列表,指定哪些域名不使用 Fake-IP,而是直接解析真实 IP。
TUN 模式
TUN 模式可以将所有经过设备的流量重定向到 Clash,实现全局代理。
“`yaml
tun:
enable: true
stack: system
dns-hijack:
• “any:53”
“`
• enable:启用 TUN 模式。
• stack:TUN 栈模式,`system` 通常兼容性更好。
• dns-hijack:DNS 劫持列表,确保所有 DNS 请求都被重定向到 Clash 处理。
配置文件的安全与维护
手动编辑配置文件时,安全性和维护性同样重要。
安全注意事项
• 避免明文传输敏感信息:配置文件可能包含节点信息,建议加密存储或定期更换。
• 不要随意导入未知配置文件:来源不明的配置文件可能包含恶意规则,如将流量重定向到攻击者控制的节点。
• 定期更新节点信息:节点可能会失效或更换,定期更新配置文件以确保可用性。
维护建议
• 备份配置文件:在修改前备份原始配置文件,以便在出现错误时快速恢复。
• 使用版本控制:对于高级用户,可以使用 Git 等版本控制工具管理配置文件,方便追踪变更历史。
• 精简配置:移除不再使用的节点和规则,保持配置文件简洁,提高加载速度。
通过以上步骤,用户可以更好地理解和配置 Clash 元核心,实现更灵活、高效的网络代理体验。