📚 本文是 科学上网完全指南(2026最新版) 系列教程之一。客户端选型、订阅导入、规则分流先看总览页,这篇只聊最容易被忽略、却最能影响体感的 DNS:fake-ip 到底是什么、DNS 泄露和污染怎么分、以及那个最常见的”能连上却打不开网页”怎么解。

很多人折腾 Clash,把节点换了个遍、规则改了半天,还是卡在「能连上、打不开网页」。其实十有八九不是节点的问题,是 DNS 没配对。DNS 在 Clash 配置里最不起眼,踩坑却最多。这篇就专门说它。

30 秒速答

  • fake-ip 是什么:Clash 给你访问的域名先返回一个假 IP(198.18.x.x),真实解析延后到出站时完成。速度更快,个别应用需要加进 fake-ip-filter 排除。
  • DNS 泄露:解析请求没走代理,暴露给了运营商。开着代理访问 dnsleaktest.com,显示的是节点地区就没泄露。
  • 连上却打不开网页:先重启客户端清缓存,再确认开了 fake-ip 或 redir-host,然后临时把 nameserver 换成 1.1.1.1 试试。多数人到这一步就恢复了。

一、为什么 Clash 一定要管 DNS

理解这个,就理解了后面所有坑。你的浏览器访问 google.com 时,第一步其实不是”连接那个网站”,而是先问一句:google.com 的 IP 是多少?这一步就是 DNS 解析。

问题在于:如果你直接问本地 DNS(运营商的),它可能给你一个被污染的错误答案,或者把你的查询记录暴露出去。 Clash 之所以要接管 DNS,就是要把这一步也放进代理里:解析结果是对的,解析行为也不外泄。

二、fake-ip 是什么(Clash 里最核心的 DNS 模式)

Mihomo(现在主流 Clash 客户端用的内核,它和老 Clash 的关系见 Mihomo 和 Clash 的区别)提供两种 DNS 模式:redir-host(传统真解析)和 fake-ip(假 IP 模式,默认推荐)。

fake-ip 的原理:当你访问一个域名时,Clash 不先查真实 DNS,而是立刻返回一个假的内网 IP(198.18.x.x 段),同时把「域名 ↦ 真实 IP」的映射记在自己的内存表里。等流量真正要出站时,Clash 再根据内存表把它送到正确的真实 IP。

好处有两个:

  • 延迟低,省掉了每次访问先查一遍 DNS 的等待
  • 分流判断快,拿到假 IP 的瞬间就能决定走直连还是代理

代价

  • 部分依赖「真实 IP」的应用会出问题(某些局域网设备、NAS、个别银行 App、游戏客户端)
  • 解决方案是 fake-ip-filter(排除列表),把这类域名列进去,让它们走真实解析

三、DNS 泄露和 DNS 污染,是两个不同的病

很多人把这两个混为一谈,其实解法完全不同:

DNS 污染 DNS 泄露
是什么 你查到的域名 IP 是错的(被 GFW 投毒) 你的 DNS 查询没走代理,暴露给了运营商
症状 解析到错误 IP,网页打不开或跳到假站 网页能开,但你的访问记录、地区暴露了
排查 换安全 DNS / 开 fake-ip / 查 fallback 用 dnsleaktest.com 看 DNS 服务器归属地

自查有没有泄露:开着代理访问 dnsleaktest.comipleak.net,如果显示的 DNS 服务器是节点地区(不是你的真实运营商),就没泄露;如果冒出了国内运营商的 DNS,那就是泄露了。

四、一份可抄的 Mihomo DNS 配置

理解了原理,直接看配置(Mihomo 的 dns 段):

dns:
enable: true
enhanced-mode: fake-ip # 或 redir-host
fake-ip-range: 198.18.0.1/16
default-nameserver: # 用来解析 DoH 服务器自己的域名,必须是纯 IP
- 223.5.5.5
- 119.29.29.29
proxy-server-nameserver: # 专门解析代理节点自己的服务器地址,避免节点域名被解析出假 IP
- https://doh.pub/dns-query
nameserver:
- https://doh.pub/dns-query # 国内安全 DNS,解析国内域名
- https://1.1.1.1/dns-query # 兜底
fallback:
- https://dns.google/dns-query # 污染兜底,走代理
- tls://8.8.8.8
fallback-filter:
geoip: true
geoip-code: CN
fake-ip-filter:
- '*.lan'
- '*.local'
- '*.home.arpa'
- 'time.apple.com'

几个要点:

  • enhanced-mode: fake-ip 是默认推荐,日常体感最好
  • default-nameserver 负责「解析 DNS 服务器自己的域名」,必须是纯 IP,漏了它 DoH 地址可能直接连不上
  • proxy-server-nameserver 专管节点服务器地址的解析,用国内 DNS 就行,节点域名不能被 fake-ip 骗掉
  • nameserver 放你能直接访问的 DNS,fallback 放走代理的安全 DNS,用于污染兜底
  • fake-ip-filter 把局域网、对真实 IP 敏感的服务排除出去

用新版 Mihomo(v1.18.10 及以后)的,还有一套更省心的防泄露写法:加 respect-rules: true(让 DNS 查询自己也遵守分流规则、跟着代理出去),再配一个 direct-nameserver(命中直连的域名用国内 DNS)。这样三个字段各管一摊:proxy-server-nameserver 解析节点、nameserver 管代理流量、direct-nameserver 管直连流量,从结构上就不容易泄露。

顺带说一个多数教程不讲的事实:fallback 这套机制主要是给 redir-host 模式准备的。fake-ip 模式下域名在规则匹配阶段就已经分流,被污染的解析结果影响不到最终路由,fallback 留着没坏处,但别指望它救 fake-ip 的场。fake-ip 下打不开网页,问题几乎都出在 nameserver 本身连不上。

五、最能救急的排查顺序

遇到「能连上、打不开网页」,别急着换节点,按这个顺序来:

  1. 重启客户端清 DNS 缓存,先排除最蠢的缓存问题
  2. 确认开了 fake-ip(或 redir-host),DNS 没接管的话,换什么节点都白搭
  3. 临时把 nameserver 换成公共 DNS(1.1.1.1 / 8.8.8.8)看是否恢复
  4. 测一下 DNS 泄露(dnsleaktest.com),确认解析到底走没走对
  5. 还不行,才是真的查节点和线路

六、常见问题

Clash 的 fake-ip 是什么?

fake-ip 是 Mihomo 的一种 DNS 模式:客户端给访问的域名返回一个假内网 IP,同时把真实域名-IP 映射记在内存里。好处是延迟低、分流判断快;代价是部分依赖真实 IP 的应用会出问题,需要加进 fake-ip-filter 排除。

Clash 的 DNS 泄露是什么?怎么解决?

DNS 泄露指域名解析请求没走代理、直接发给了本地运营商 DNS,导致访问记录暴露。解决:确认 Clash 开启 DNS 接管(fake-ip 或 redir-host),并给 nameserver 配走代理的安全 DNS,再用 dnsleaktest.com 验证。

Clash「能连上却打不开网页」是 DNS 的问题吗?

很可能是。表现是节点测速正常、显示已连接,但页面一直转圈或超时。多因 DNS 解析失败或污染。按顺序排查:重启清缓存、切 fake-ip、检查 nameserver/fallback、临时换公共 DNS。

Clash 里 nameserver、fallback、proxy-server-nameserver 分别是什么?

nameserver 是主 DNS;fallback 是主 DNS 结果疑似被污染时的兜底;proxy-server-nameserver 专用于解析代理节点自己的服务器地址。三者分工不同。

怎么检测自己有没有 DNS 泄露?

开着代理访问 dnsleaktest.com 或 ipleak.net,看 DNS 服务器归属地。如果是节点地区就没泄露,冒出国内运营商 DNS 就是泄露了。

fake-ip 模式某些应用连不上怎么办?

把出问题的域名加进 fake-ip-filter 排除列表,让它们走真实解析。常见需排除的:局域网设备、NAS、打印机、部分银行 App、个别游戏。一批应用都异常就切回 redir-host 对比定位。


DNS 这块通了,剩下的高频问题主要是「测速」和「排障」。节点怎么测、延迟怎么看见 Clash 节点测速完全指南,按症状排查见 Clash / Mihomo 独立排障指南。想系统看 Clash 全配置,回到 Clash 教程总览页