DNS 配置指南:解决解析异常与 DNS 污染问题
网页打不开、图片加载不出来、部分网站访问缓慢,很多时候排查半天发现问题根源不是节点,而是 DNS 解析被污染或走错了路径。这篇文章讲清楚 Clash 里 DNS 模块该怎么配。
为什么 DNS 也需要配置
即便代理连接本身完全正常,如果域名解析用的是被污染或劫持的 DNS 服务器,浏览器拿到的目标 IP 就是错的,后续无论走不走代理都无法正常访问。因此代理客户端通常会内置一个 DNS 模块,接管系统的域名解析请求,用可信的 DNS 服务器解析,再决定连接哪个 IP。
基础 DNS 配置
default-nameserver:用于解析下面nameserver里那些 DNS-over-HTTPS / DNS-over-TLS 服务器自身的域名,通常填一个国内可直连的普通 DNS。nameserver:真正用来解析你访问网站的 DNS 服务器,推荐使用支持加密的 DoH(https://)或 DoT(tls://),避免被中间网络设备篡改或阻断。
fake-ip:让分流更聪明
如果开启了 TUN 模式,通常会同时启用 fake-ip 模式:内核先给每个域名分配一个虚拟 IP 返回给系统,实际连接时再根据域名(而不是真实 IP)去匹配规则、发起连接。好处是分流判断可以精确到域名级别,不受 DNS 返回结果的影响。
fake-ip-filter 用于排除不适合用虚拟 IP 的域名(比如局域网设备、需要真实 IP 才能正常工作的服务),命中过滤规则的域名会走正常 DNS 解析流程。
fake-ip 影响,把对应域名加入 fake-ip-filter 通常就能解决。如何验证 DNS 是否正常工作
可以在系统的终端/命令提示符里,用 nslookup 或 dig 查询一个域名,对比开启代理前后返回的 IP 是否不同——如果开启代理后返回了一个明显不属于目标网站的 IP(例如内网地址、无效地址),大概率是 DNS 配置有问题,需要检查 nameserver 列表或 fake-ip-filter 设置。
按域名指定不同的 DNS 解析策略
如果你既要保证境内网站解析速度快,又要保证境外网站不被污染,可以给不同规则集配置不同的 DNS 策略,让境内域名走国内 DNS 直接解析,境外域名走加密 DNS 解析,两者互不影响:
nameserver-policy 允许你针对特定域名分组(这里用了内置的 geosite:cn 境内域名分类)指定专用的 DNS 服务器,不在策略范围内的域名则继续使用默认的 nameserver 列表解析,两套逻辑互不冲突。
IPv6 环境下需要额外注意什么
如果本机或运营商网络已经启用了 IPv6,DNS 解析出的 AAAA 记录可能会让系统优先尝试 IPv6 连接,而部分代理节点或规则集还没有做好 IPv6 层面的适配,容易出现「有时候连得上、有时候连不上」的诊断难题。如果暂时不确定 IPv6 链路是否稳定,可以先在 DNS 配置里关闭 IPv6 解析:
等确认 IPv6 环境下的节点连通性没有问题后,再重新开启即可,这一步能帮你快速排除「到底是 DNS 问题还是 IPv6 链路问题」这个常见的排查盲区。
小结
DNS 问题的表现和「网络连不上」很像,容易被误判为节点故障。遇到访问异常先排除一下 DNS 这一层——换一个可信的加密 DNS 服务器、检查 fake-ip 过滤规则、留意 IPv6 环境下的兼容性,往往比反复更换节点更能定位问题。