作为目前跨平台网络代理领域应用最广泛的基于规则的分流内核,Clash 彻底颠覆了传统单一全局代理的粗放管理模式。通过深度整合 DNS 过滤、路由分流表与自适应策略组,Clash 实现了内网直连与海外加速的无感协同。
一、Clash 核心数据流生命周期剖析
当用户在浏览器中输入一个网址(例如 api.openai.com)时,Clash 内核内部会按序执行以下生命周期节点:
- 请求拦截与透明监听:流量首先被客户端设置的 HTTP/SOCKS 混合监听端口(Mixed-Port,如 7890)或 TUN 虚拟网卡全量捕获;
- 内置 DNS 模块介入(Fake-IP 机制):传统模式下若本地解析海外域名,极易遭遇 DNS 污染导致获取错误的 IP 地址。Clash 在
enhanced-mode: fake-ip模式下,会立即从保留地址池(如198.18.0.1/16)派发一个虚拟虚假 IP 返回给操作系统,同时在内存中维护域名与该虚假 IP 的键值映射表; - 规则匹配引擎(Rules Engine):当应用使用该虚假 IP 发起 TCP 三次握手时,Clash 迅速通过映射表逆向还原出原始域名,并依次匹配配置文件中的分流规则;
- 策略组分发(Proxy Groups):根据匹配结果,将数据报文引导至对应的出站出口——例如直连(DIRECT)、拒绝(REJECT)或指定的远程加速专线节点(如 BitzNet 专线节点),由远程节点在境外完成真实的目标服务器 DNS 解析与 TLS 握手。
二、Fake-IP 模式 vs Redir-Host 模式
在 Clash 配置文件中,DNS 模块的模式选择直接关乎连接建立的时延表现:
| 模式名称 | 解析时机 | 首包握手耗时 | 适用场景 |
|---|---|---|---|
| fake-ip | 本地即刻返回伪造 IP,远端落地机真实解析 | 极快(消除本地 DNS 等待) | 现代桌面客户端(Clash Verge)及大多数场景首选 |
| redir-host | 本地向指定的 DNS 服务器发起真实递归查询 | 稍慢(增加本地往返) | 部分依赖真实 IP 的特殊内网老旧业务设备 |
三、典型规则(Rules)与策略组(Proxy Groups)语法实战
理解配置文件的结构是深度玩转 Clash 的关键。标准配置通常包含策略组与规则列表:
# 策略组示例:自适应故障转移与场景分流
proxy-groups:
- name: "🤖 AI-Services"
type: select
proxies:
- "🇺🇸 美国-专线-01"
- "🇯🇵 日本-专线-02"
- name: "🎬 Global-Streaming"
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300
tolerance: 50
proxies:
- "🇭🇰 香港-专线-01"
- "🇸🇬 新加坡-专线-01"
# 规则匹配示例:由特异到通用的自顶向下顺序
rules:
- DOMAIN-SUFFIX,openai.com,🤖 AI-Services
- DOMAIN-SUFFIX,claude.ai,🤖 AI-Services
- DOMAIN-KEYWORD,netflix,🎬 Global-Streaming
- GEOIP,CN,DIRECT
- MATCH,🐟 漏网之鱼
四、高阶优化实践:避免 DNS 泄漏与规则顺序陷阱
- 规则顺序从严到宽:Clash 匹配规则遵循“首条命中即终止”原则。因此具体的域名后缀(DOMAIN-SUFFIX)必须置于宽泛的地理位置(GEOIP)或 MATCH 之前,否则特定海外域名会被错误归入国内直连;
- 合理配置 fallback 与 nameserver:对于国内解析,推荐使用阿里 DNS(223.5.5.5)或腾讯 DNSPod(119.29.29.29);海外解析则配置安全加密的 DoH(DNS over HTTPS)服务,彻底杜绝本地运营商的劫持插桩。
Clash 核心常见问答
系统代理仅接管遵循操作系统代理协议的软件(如浏览器);而 TUN 模式会在系统底层创建一张虚拟网卡,实现全系统所有流量(包括命令行、游戏、Docker 等)的无死角全量接管。