本文详解Clash中DNS分流的配置方法,通过合理设置实现国内直连、国际流量走代理的精准控制,提升访问速度与稳定性。
DNS分流的核心原理
DNS分流(Split DNS)是指根据域名类型或IP地址段,分别使用不同的DNS服务器进行解析,国内域名返回国内IP实现直连,海外域名返回代理节点IP绕过跨境延迟,Clash的DNS模块支持基于规则的分流解析,配合fallback和nameserver策略,可有效解决传统代理模式下国内网站访问缓慢的问题。
配置步骤与实操
基础DNS设置
在Clash配置文件的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
其中nameserver用于国内域名解析,fallback用于海外域名,当enhanced-mode设为fake-ip时,代理流量会返回虚拟IP,简化分流逻辑。
分流规则写法
Clash支持四种主流规则类型,优先级从高到低为:
- DOMAIN:精确匹配域名,如
domain:google.com - DOMAIN-SUFFIX:匹配域名后缀,如
domain-suffix:youtube.com - DOMAIN-KEYWORD:关键词匹配,如
domain-keyword:google - IP-CIDR:IP段匹配,如
ip-cidr:10.0.0.0/8,no-resolve - GEOIP:国家/地区匹配,如
geoip:cn
配置示例:
rules: - DOMAIN-SUFFIX,bilibili.com,DIRECT - DOMAIN-KEYWORD,google,PROXY - IP-CIDR,10.0.0.0/8,DIRECT - IP-CIDR,172.16.0.0/12,DIRECT - GEOIP,cn,DIRECT - MATCH,PROXY
规则按顺序匹配,命中后执行对应策略。MATCH表示前面所有规则都未匹配时的默认动作。
代理组类型选择
Clash提供三种代理组策略:
| 类型 | 原理 | 适用场景 |
|---|---|---|
| select | 手动选择节点 | 需要固定使用某个代理 |
| url-test | 自动测速选择延迟最低 | 日常跨境访问 |
| fallback | 优先使用第一个可用节点 | 追求稳定性 |
日常使用推荐url-test自动测速,配置示例:
proxy-groups:
- name: PROXY
type: url-test
proxies:
- 节点A
- 节点B
url: http://www.gstatic.com/generate_204
interval: 300
TUN模式与系统代理的区别
系统代理模式仅接管HTTP/HTTPS/SOCKS5协议的流量,由应用程序主动发起代理请求,适合浏览器、桌面应用等支持代理设置的场景。
TUN模式创建虚拟网卡,拦截所有TCP/UDP流量并由Clash处理,适合游戏客户端、即时通讯软件等不支持代理设置的场景,TUN模式配置需在tun部分启用:
tun:
enable: true
stack: system
dns-hijack:
- 8.8.8.8
auto-route: true
常见问题FAQ
现象:开启DNS后国内网站仍走代理
原因:fallback DNS被墙或延迟过高
解决方法:将fallback改为国内可用的DNS,如114.114.114
现象:部分国内网站无法访问
原因:域名被错误识别为海外域名
解决方法:在规则中手动添加该域名至DIRECT组
现象:fake-ip导致本地网络设备无法访问
原因:fake-ip与局域网IP段冲突
解决方法:在fake-ip-filter中添加局域网网段
节点选择建议
不同使用场景对节点性能要求不同:4K视频需要高带宽专线,游戏需要低延迟节点,跨境办公需要稳定连接,建议选择支持url-test测速的订阅,可自动切换至最优节点。
