1 Clash 配置文件是什么
Clash的所有行为都由一个YAML格式的配置文件驱动。YAML是一种人类可读的数据序列化语言,使用缩进表示层级关系。一个典型的Clash配置包含以下几个核心部分:
- proxies — 代理节点列表
- proxy-groups — 策略组定义
- rules — 流量分流规则
- dns — DNS解析配置
配置文件决定了哪些流量走代理、哪些直连、DNS如何解析。理解每一部分的作用是独立配置的第一步。
💡 核心概念:Clash的工作流程是——流量到达后先匹配 rules,根据规则指向某个 proxy-groups(策略组),策略组再从 proxies 中选择一个节点进行连接。DNS部分则在解析域名时介入,确保解析结果准确且不被污染。
新手可以从一个最小化配置开始,逐步添加规则和DNS设置。下面是一个极简示例:
proxies:
- name: "我的节点"
type: ss
server: server.example.com
port: 443
cipher: aes-256-gcm
password: "your-password"
proxy-groups:
- name: Proxy
type: select
proxies:
- "我的节点"
rules:
- MATCH,Proxy
这个配置将所有流量(MATCH是兜底规则)都指向名为Proxy的策略组,策略组中只有一个节点。实际使用中,你需要扩展rules来实现智能分流。
2 规则系统:流量分流的艺术
规则(rules)是Clash最核心的能力。通过精准的规则匹配,你可以让国内网站直连、海外AI服务走代理、广告域名直接拒绝——一切按你的意愿调度。
Clash支持多种规则类型,最常用的包括:
- DOMAIN-SUFFIX — 域名后缀匹配(如
openai.com)
- DOMAIN-KEYWORD — 域名关键词匹配
- GEOIP — 基于IP地理数据库匹配
- IP-CIDR — IP段匹配
- MATCH — 兜底规则,必须放在最后
一个典型的规则配置片段:
rules:
- DOMAIN-SUFFIX,openai.com,AI
- DOMAIN-SUFFIX,github.com,Proxy
- DOMAIN-KEYWORD,google,Proxy
- GEOIP,CN,DIRECT
- MATCH,Proxy
规则按从上到下的顺序匹配,命中后不再继续。因此更具体的规则应放在前面,通用规则(如GEOIP和MATCH)放在后面。上述规则中:访问openai.com会命中第一条,走AI策略组;github.com走Proxy;所有CN IP的流量直连;其余全部走Proxy。
📌 实践建议:规则文件可以从社区维护的规则集获取,也可以自行编写。对于AI工具、开发者平台等高频场景,建议专门创建策略组并编写精确规则,以获得最优线路。
3 DNS 防泄漏:守护你的域名解析安全
DNS泄漏是指本应通过代理解析的域名请求,却意外地使用了本地运营商DNS,导致访问记录暴露。Clash提供了多层次的DNS防护机制,正确配置可以彻底杜绝此类风险。
Clash支持多种DNS工作模式,最核心的两个概念是fake-ip和redir-host。
- fake-ip模式 — Clash为每个域名返回一个虚假的IP地址,将域名-IP映射保存在内存中。当流量到达时,Clash根据这个虚假IP反查真实域名,再进行规则匹配。这种方式完全绕过了本地DNS,防泄漏效果最佳,也是推荐模式。
- redir-host模式 — 基于域名进行规则匹配,DNS解析在需要时进行。适用于部分兼容性场景,但存在一定的泄漏风险。
除了基础模式,Clash还支持通过DoH(DNS over HTTPS)和DoT(DNS over TLS)进行加密DNS查询,防止DNS请求在传输过程中被篡改或监视。
一个完整的DNS防泄漏配置示例:
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
fallback:
- https://dns.google/dns-query
- tls://dns.quad9.net:853
fallback-filter:
geoip: true
geoip-code: CN
domain:
- +.google.com
- +.github.com
这个配置启用了fake-ip增强模式,国内域名使用国内DoH服务器解析(nameserver),海外域名使用Google和Quad9的加密DNS(fallback)。fallback-filter进一步限定了哪些域名走fallback通道——这里配置为所有非CN GeoIP的域名以及google.com、github.com等明确海外域名。
🛡️ 安全提示:请务必确保 enhanced-mode 设置为 fake-ip,并配置可靠的加密DNS服务器。避免在nameserver中使用运营商默认DNS(如114.114.114.114),因为它们不支持加密且可能被污染。
想要更深入地理解fake-ip与redir-host的差异,以及在不同网络环境下的最佳实践?
深入理解 DNS 架构与内核机制 →
4 TUN 模式:系统级流量接管
TUN模式通过创建虚拟网卡,将系统所有流量引入Clash进行处理。这意味着无需为每个应用程序单独设置代理——浏览器、终端、Docker容器、游戏等所有网络请求都会被自动接管。
启用TUN模式后,Clash可以处理TCP和UDP流量,对QUIC、HTTP/3等新型协议也能完整支持。这对于视频通话、在线游戏等依赖UDP的场景尤为重要。
TUN模式的配置通常在客户端GUI中一键开启,也可以在配置文件中声明:
tun:
enable: true
stack: system
auto-route: true
auto-detect-interface: true
不同操作系统的TUN实现略有差异——Windows使用Wintun驱动,macOS和Linux使用系统内置的utun/tun接口。Mihomo内核对TUN模式进行了大量优化,性能和稳定性均达到生产可用级别。
深入理解 Mihomo TUN 实现 →
5 订阅转换与自动更新
手动维护节点列表和规则集非常繁琐。Clash支持proxy-provider和rule-provider机制,可以从远程URL自动拉取节点和规则,并定期更新。
一个使用provider的配置示例:
proxy-providers:
my-subscription:
type: http
url: "https://example.com/subscribe"
path: ./profiles/providers/sub.yaml
interval: 3600
health-check:
enable: true
url: https://www.gstatic.com/generate_204
interval: 300
rule-providers:
ai-rules:
type: http
url: "https://example.com/rules/ai.yaml"
path: ./profiles/rules/ai.yaml
interval: 86400
通过interval参数设置更新间隔(秒),Clash会自动拉取最新数据。结合GitHub Actions等CI/CD工具,你甚至可以实现配置文件的自动生成与发布——每次规则更新后自动推送到托管地址,Clash客户端即可无感获取最新规则。
🔗 创意内链:想直接使用现成的AI场景配置,无需从零编写规则?
查看 AI 场景方案库 → 我们为ChatGPT、Claude、Gemini等常用AI工具准备了开箱即用的规则模板。