Clash 配置教程:YAML、规则分流、DNS 防泄漏完整指南

从零开始掌握Clash配置文件的结构与语法,学会按需设定流量分流策略,筑牢DNS安全防线。

图文式步骤讲解简单直白,涵盖日常调试常见问题,快速学会独立完成整套代理配置操作。

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-ipredir-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.comgithub.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-providerrule-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工具准备了开箱即用的规则模板。