Clash 劫持 DNS 通过自定义域名解析规则,实现国内外流量的智能分流,本文详解配置方法与常见问题解决方案。
什么是 DNS 劫持
DNS 劫持是 Clash 核心功能之一,通过接管域名解析请求,将特定域名的解析结果重定向到代理节点或直连线路,在 dns 配置段中启用 enable: true 后,Clash 会根据预设规则决定每个域名的解析方式。
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 用于国外域名,当 fallback 组的 DNS 服务器响应超时时,自动切换到 nameserver,确保解析成功率。
代理组类型与适用场景
Clash 代理组决定流量如何转发,常见三种类型:
- select:手动选择节点,适合需要明确指定代理的场景
- url-test:自动测速选择延迟最低节点,适合日常上网
- fallback:优先使用列表中第一个可用节点,其他作为备份
proxy-groups:
- name: 代理选择
type: select
proxies:
- 节点A
- 节点B
- name: 自动测速
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300
proxies:
- 节点A
- 节点B
日常访问国际网站建议使用 url-test,需要特定节点时使用 select。
TUN 模式与系统代理的区别
TUN 模式创建虚拟网卡,接管设备所有流量(包括 UDP、游戏数据包),适合需要全流量代理的场景。系统代理仅处理 HTTP/HTTPS 请求,无法代理游戏或 UDP 流量。
开启 TUN 模式需要在配置中启用:
tun:
enable: true
stack: system
dns-hijack:
- 8.8.8.8:53
auto-route: true
游戏玩家、UDP 需求用户应选择 TUN mode,普通网页浏览系统代理足够。
分流规则写法与优先级
Clash 规则按顺序匹配,常用规则类型:
DOMAIN-SUFFIX:匹配域名后缀,如google.com匹配所有子域名DOMAIN:精确匹配域名IP-CIDR:匹配 IP 段GEOIP:按国家/地区匹配
rules: - DOMAIN-SUFFIX,google.com,代理选择 - DOMAIN,www.baidu.com,DIRECT - IP-CIDR,10.0.0.0/8,DIRECT - GEOIP,CN,DIRECT - MATCH,代理选择
规则顺序至关重要:精细规则在前,通用规则在后。MATCH 兜底匹配所有未命中流量。
常见问题 FAQ
现象:开启 DNS 劫持后部分网站无法访问
原因:DNS 服务器不可达或 fallback 延迟过高
解决方法:更换为延迟更低的 DNS 服务器,或在 nameserver 中增加更多国内 DNS
现象:fake-ip 模式下内网设备无法访问
原因:fake-ip 虚拟 IP 段未被内网路由识别
解决方法:在配置中添加 fake-ip-range: 198.18.0.1/16,并设置内网网段直连
现象:代理规则生效但速度慢
原因:节点带宽不足或 DNS 解析到较远服务器
解决方法:切换至带宽更高的节点,或调整 fallback DNS 为本地可用的国际 DNS
