Clash DNS 配置完整指南
DNS 配置是 Clash 最容易被忽略但又很重要的部分。配置不当会导致 DNS 泄露、网站打不开、或者访问速度变慢。这篇文章详细讲解 Clash 的两种 DNS 模式、如何配置 DNS 分流、如何防止泄露,以及常见 DNS 问题的解决方法。
为什么需要配置 DNS
访问网站时,浏览器首先要通过 DNS 把域名(如 google.com)解析成 IP 地址。在代理环境下,DNS 解析有几个问题:
- DNS 泄露 - DNS 请求没走代理,被本地 ISP 看到你访问了什么网站
- DNS 污染 - 国内 DNS 对某些域名返回错误 IP
- 解析慢 - 用国外 DNS 查国内网站,或用国内 DNS 查国外网站,都很慢
- CDN 问题 - DNS 解析位置不对,CDN 分配的节点也不对,速度慢
Clash 的 DNS 配置就是为了解决这些问题。
两种 DNS 模式
Clash 支持两种 DNS 模式:fake-ip 和 redir-host。
fake-ip 模式
工作原理:
Clash 给每个域名分配一个虚拟 IP(从 198.18.0.0/16 段),应用拿到这个虚拟 IP 后发起连接,Clash 拦截连接并解析真实 IP。
优点:
- 速度快,不用等 DNS 解析
- 没有 DNS 泄露
- 匹配域名规则更准确
缺点:
- 某些应用不兼容(如音乐软件、某些游戏)
- 无法获取真实 IP
推荐使用场景:
日常浏览网页、看视频、开发工作
redir-host 模式
工作原理:
Clash 真实地解析 DNS,把真实 IP 返回给应用,应用用真实 IP 建立连接。
优点:
- 兼容性好,所有应用都支持
- 可以获取真实 IP
- 适合需要精确 IP 的场景
缺点:
- 需要等 DNS 解析,略慢
- 可能有 DNS 泄露风险
- 域名规则匹配可能不准确
推荐使用场景:
游戏、音乐软件、需要真实 IP 的应用
基础 DNS 配置
fake-ip 模式配置(推荐)
dns:
enable: true
ipv6: false
listen: 0.0.0.0:53
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- 'localhost.ptlogin2.qq.com'
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- 8.8.8.8
- 1.1.1.1
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
关键参数说明:
enhanced-mode: fake-ip- 启用 fake-ip 模式fake-ip-range- 虚拟 IP 段,不要改fake-ip-filter- 某些域名不用 fake-ip(如局域网域名)nameserver- 主 DNS 服务器(国内)fallback- 备用 DNS 服务器(国外)
redir-host 模式配置
dns:
enable: true
ipv6: false
listen: 0.0.0.0:53
enhanced-mode: redir-host
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- 8.8.8.8
- 1.1.1.1
fallback-filter:
geoip: true
geoip-code: CN
DNS 分流配置
DNS 分流的目标:国内域名用国内 DNS 解析,国外域名用国外 DNS 解析。这样速度最快,也能避免污染。
基于域名的 DNS 分流
dns:
enable: true
enhanced-mode: fake-ip
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- 8.8.8.8
- 1.1.1.1
nameserver-policy:
# 指定域名用指定 DNS
'google.com': 8.8.8.8
'github.com': 1.1.1.1
'+.cn': 223.5.5.5
'+.taobao.com': 223.5.5.5
fallback-filter:
geoip: true
geoip-code: CN
nameserver-policy 说明:
google.com- 匹配 google.com+.cn- 匹配所有 .cn 域名+.taobao.com- 匹配 taobao.com 及其子域名
fallback-filter 工作原理
Clash 同时向 nameserver 和 fallback 发送 DNS 请求,然后根据 fallback-filter 规则决定用哪个结果:
- 如果 nameserver 返回的是国外 IP(geoip 非 CN),使用 fallback 的结果
- 如果 nameserver 返回的是国内 IP,使用 nameserver 的结果
- 如果 nameserver 返回的 IP 在 ipcidr 黑名单中,使用 fallback 的结果
这样能有效防止 DNS 污染。
推荐的 DNS 服务器
国内 DNS(nameserver)
nameserver:
- 223.5.5.5 # 阿里 DNS
- 119.29.29.29 # 腾讯 DNS
- 114.114.114.114 # 114 DNS
国外 DNS(fallback)
fallback:
- 8.8.8.8 # Google DNS
- 1.1.1.1 # Cloudflare DNS
- 208.67.222.222 # OpenDNS
DoH / DoT(加密 DNS)
如果担心 DNS 被监听或劫持,可以用加密 DNS:
nameserver:
- https://223.5.5.5/dns-query # 阿里 DoH
- https://1.12.12.12/dns-query # 腾讯 DoH
fallback:
- https://8.8.8.8/dns-query # Google DoH
- https://1.1.1.1/dns-query # Cloudflare DoH
- tls://8.8.8.8:853 # Google DoT
防止 DNS 泄露
DNS 泄露是指:你开着代理,但 DNS 请求没走代理,直接发到了本地 ISP 的 DNS 服务器。
如何检测 DNS 泄露
访问这些网站测试:
https://dnsleaktest.comhttps://www.dnsleaktest.org
如果显示的 DNS 服务器是国内 ISP 的(如中国电信、中国联通),说明有泄露。
防止泄露的配置
1. 启用 Clash 的 DNS
dns:
enable: true
2. 使用 fake-ip 模式
fake-ip 模式下 DNS 请求完全由 Clash 处理,不会泄露。
3. TUN 模式 + DNS 劫持
tun:
enable: true
stack: system
dns-hijack:
- any:53
这样所有 DNS 请求都会被 Clash 拦截,彻底防止泄露。
常见 DNS 问题
原因:DNS 解析失败或返回了错误 IP。
解决:
- 检查 fake-ip-filter,某些域名可能需要加进去
- 试试切换到 redir-host 模式
- 清除 Clash 的 DNS 缓存(重启 Clash)
原因:国内网站被 fallback(国外 DNS)解析了,CDN 分配的节点不对。
解决:
- 配置 fallback-filter,让国内 IP 用 nameserver 的结果
- 或者在 nameserver-policy 中明确指定国内域名用国内 DNS
原因:音乐软件(如网易云音乐)对 fake-ip 模式不兼容。
解决:
- 把音乐软件的域名加入 fake-ip-filter
- 或者切换到 redir-host 模式
fake-ip-filter:
- '*.music.163.com'
- '*.126.net'
原因:游戏可能需要真实 IP,fake-ip 模式不行。
解决:
- 切换到 redir-host 模式
- 或者把游戏域名加入 fake-ip-filter
性能优化建议
国内用阿里 DNS 或腾讯 DNS,速度快。
nameserver 和 fallback 各配 2-3 个就够了,太多反而慢。
Clash 会自动缓存 DNS 结果,同一个域名短时间内不会重复查询。
完整推荐配置
这是一个平衡速度、安全、兼容性的配置:
dns:
enable: true
ipv6: false
listen: 0.0.0.0:53
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- '*.local'
- 'localhost.ptlogin2.qq.com'
- '+.msftconnecttest.com'
- '+.msftncsi.com'
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- 8.8.8.8
- 1.1.1.1
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
- 0.0.0.0/32
总结
DNS 配置看起来复杂,但核心就几点:
- 用 fake-ip 模式(除非有兼容性问题)
- 国内 DNS + 国外 DNS 组合使用
- 配置 fallback-filter 防止污染
- 遇到问题先检查 fake-ip-filter
大部分情况下,用本文推荐的配置就够了。如果有特殊需求,再根据实际情况调整。