本文详解Clash中DNS分流的工作原理,手把手教你配置域名规则、IP规则以及代理组联动,实现国内直连、国际流量自动走代理的精准控制。
什么是DNS分流
DNS分流(Split DNS)是Clash核心功能之一,通过对不同域名的DNS解析结果进行差异化处理,实现流量智能分发,国内域名解析至国内CDN,国际域名走代理DNS获取海外IP,大幅降低访问延迟。
传统全局代理模式下,所有流量均经过代理节点,导致国内网站访问速度下降、流量浪费,DNS分流正是解决这一痛点的关键技术。
配置步骤
基础DNS设置
在Clash配置文件中找到dns部分,启用分流DNS:
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- 8.8.8.8
- 1.1.1.1
enhanced-mode: fake-ip:返回伪造IP,避免DNS污染nameserver:国内DNS,用于解析国内域名fallback:海外DNS,用于解析国际域名
分流规则配置
Clash规则按顺序匹配,常用规则类型:
| 规则类型 | 写法 | 适用场景 |
|---|---|---|
| DOMAIN | DOMAIN,google.com |
精确匹配单个域名 |
| DOMAIN-SUFFIX | DOMAIN-SUFFIX,netflix.com |
匹配域名及所有子域名 |
| IP-CIDR | IP-CIDR,10.0.0.0/8,no-resolve |
匹配IP段 |
| GEOIP | GEOIP,CN,DIRECT |
匹配国家/地区 |
实战配置示例:
rules: # 国内直连 - DOMAIN-SUFFIX,baidu.com,DIRECT - DOMAIN-SUFFIX,taobao.com,DIRECT - IP-CIDR,10.0.0.0/8,DIRECT - IP-CIDR,172.16.0.0/12,DIRECT - GEOIP,CN,DIRECT # 国际流量走代理 - DOMAIN-SUFFIX,youtube.com,Proxy - DOMAIN-SUFFIX,github.com,Proxy - DOMAIN-KEYWORD,google,Proxy # 最后兜底 - MATCH,Proxy
代理组类型选择
代理组决定节点如何被调用:
- select:手动选择节点,适合需要固定节点场景
- url-test:自动测速,选择延迟最低节点
- fallback:主节点故障时自动切换备用节点
proxy-groups:
- name: Proxy
type: select
proxies:
- 香港节点A
- 日本节点B
- 美国节点C
- name: Auto
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300
proxies:
- 香港节点A
- 日本节点B
TUN模式与系统代理的区别
- 系统代理模式:仅接管HTTP/HTTPS/SOCKS5协议流量,部分应用(如游戏、UDP应用)无法代理
- TUN模式:创建虚拟网卡,接管设备所有流量(包括UDP),适合游戏、直播等场景
TUN模式配置需在Clash客户端中开启"tun mode"或"tun内核",性能开销略高于系统代理。
常见问题FAQ
现象:开启代理后国内网站访问变慢 原因:DNS分流规则未包含国内主流域名,或fallback DNS被劫持 解决方法:在rules中添加更多国内域名规则,确保GEOIP规则位于国际规则之前
现象:部分网站无法访问,提示证书错误
原因:fake-ip模式下证书校验失败
解决方法:将相关域名加入fake-ip-filter排除列表
现象:代理规则生效但速度不理想 原因:代理组类型选择不当或节点质量一般 解决方法:切换至url-test自动测速,或更换节点服务商
节点选择建议
不同使用场景对节点要求不同:4K视频需高带宽低丢包节点,竞技游戏需低延迟稳定线路,日常办公则注重流量套餐性价比,选择节点时重点关注延迟、稳定性、带宽上限三项指标。
对于跨境办公需求,建议配置双代理组——日常网页浏览使用普通节点,重要会议切换至专线节点,兼顾成本与体验。
