Clash DNS 设置教程:Fake-IP 与 Redir-Host、nameserver、DoH 与 IPv6 怎么配
Clash 系客户端的 DNS 配置是分流正确、流媒体解锁、隐私不泄露的基础,但默认设置多数时候已经够用。本文讲哪些症状说明需要改 DNS,Fake-IP 和 Redir-Host 两种模式的区别与 fake-ip-filter 的用法,nameserver、fallback、nameserver-policy、default-nameserver 各自的分工,DoH / DoT 的写法,IPv6 开关的影响,各客户端在哪里改,一份可直接用的覆写示例,以及改错后的典型后果和怎么恢复。
先判断要不要改
DNS 配置在 Clash 系客户端里是最容易改坏的部分,所以先说什么时候不用动:
- 用 Clash Verge Rev、FlClash、Clash Party、ClashMeta for Android 的默认配置,能正常上网、规则分流正常。
- 机场订阅自带了 DNS 段,并且没有出现下面列的症状。
出现以下症状再改:
| 症状 | 可能和 DNS 相关的原因 |
|---|---|
| 规则模式下部分国内 App 打不开或登录异常 | Fake-IP 返回的假地址被 App 当成真实 IP 使用 |
| 流媒体提示检测到代理,但节点本身解锁 | 国外域名被国内 DNS 解析到了 CDN 的国内节点,或 DNS 泄露 |
| DNS 泄露检测站显示国内 DNS 服务器 | 国外域名解析走了国内 DNS |
| 局域网设备(NAS、打印机)访问不了 | 局域网域名被 Fake-IP 接管 |
| 游戏、视频通话 UDP 连接异常 | Fake-IP 对部分需要真实 IP 的 UDP 应用不友好 |
| 开 TUN 后浏览器提示 DNS 错误 | TUN 模式下 DNS 未启用或 enhanced-mode 不匹配 |
DNS 泄露的检测方法和后果见 DNS 泄露是什么,本文讲配置本身。
Fake-IP 与 Redir-Host
enhanced-mode 决定 Clash 怎么回应设备的 DNS 查询,两个选项。
Fake-IP
客户端对每个域名返回一个假 IP(默认在 198.18.0.0/16 段),设备拿着假 IP 发请求,Clash 收到后通过假 IP 反查出原域名,再按域名规则匹配、由节点那一端去真正解析。
优点:解析几乎零延迟;域名规则匹配准确;国外域名根本不在本地解析,天然避免污染和泄露。缺点:有些程序会缓存或校验这个假 IP,导致异常,典型的是部分国内 App、局域网服务、少数游戏。
解决方式是 fake-ip-filter,列在里面的域名不走 Fake-IP,返回真实解析结果:
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- '*.local'
- 'localhost.ptlogin2.qq.com'
- '+.stun.*.*'
- '+.msftconnecttest.com'
- '+.msftncsi.com'
- 'time.*.com'
- '+.srv.nintendo.net'
- '+.stun.playstation.net'
- '+.xboxlive.com'
多数客户端默认配置已经带了一份过滤列表,自己只需要往里加遇到问题的域名。
Redir-Host
客户端用真实 DNS 解析域名,返回真实 IP,再按域名和 IP 规则匹配。所有程序拿到的都是真 IP,兼容性最好。缺点:解析慢一点;国外域名如果用国内 DNS 解析会被污染,必须配好 fallback;Mihomo 内核中这个模式的部分特性(如 sniff)表现与 Fake-IP 不同。
怎么选
默认 Fake-IP。只有当你的主要用途是局域网设备、依赖真实 IP 的游戏或国内 App,并且 fake-ip-filter 解决不了时,才整体切到 Redir-Host。两种模式切换后建议重启客户端,并清一次系统 DNS 缓存(Windows ipconfig /flushdns,macOS sudo dscacheutil -flushcache)。
nameserver、fallback 和 nameserver-policy
这三项决定「谁来解析」。
nameserver:主解析服务器列表。填国内 DNS,保证国内域名解析到最近的 CDN:
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
- 223.5.5.5
fallback:备用解析服务器,填国外加密 DNS。当 nameserver 的结果命中 fallback-filter 的条件时,改用 fallback 的结果:
fallback:
- https://1.1.1.1/dns-query
- https://dns.google/dns-query
- tls://8.8.4.4:853
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
domain:
- '+.google.com'
- '+.facebook.com'
- '+.youtube.com'
含义:nameserver 解析出的 IP 如果不在中国(geoip-code: CN 之外)、或落在 240.0.0.0/4 这种污染常见段、或域名在 domain 列表里,就用 fallback 的结果。这是 Redir-Host 模式下防污染和防泄露的核心。
nameserver-policy:按域名指定解析服务器,比 fallback 更直接:
nameserver-policy:
'geosite:cn': 'https://doh.pub/dns-query'
'geosite:geolocation-!cn': 'https://1.1.1.1/dns-query'
'+.nas.home': '192.168.1.1'
Mihomo 内核支持 geosite 写法,国内域名走国内 DNS、国外域名走国外 DNS,局域网域名走路由器,一目了然。用了 nameserver-policy 之后 fallback 可以简化甚至不用。
default-nameserver:用来解析上面那些 DoH 服务器域名本身的 DNS,必须填纯 IP(如 223.5.5.5、119.29.29.29),否则 DoH 地址解析不出来,全部 DNS 失效。这是最常见的「改完 DNS 全断网」原因。
DoH 与 DoT 的写法
| 协议 | 格式示例 | 特点 |
|---|---|---|
| 普通 UDP | 223.5.5.5 | 快,明文,可被劫持 |
| DoH | https://dns.alidns.com/dns-query | HTTPS 加密,走 443,兼容性最好 |
| DoT | tls://dns.google:853 | TLS 加密,走 853,部分网络封 853 端口 |
| DoH3 / QUIC | h3://...、quic://... | 更快,Mihomo 支持,网络环境要求高 |
国内 DNS 的 DoH 地址(阿里 dns.alidns.com、腾讯 doh.pub)直连可用;国外 DoH(1.1.1.1、dns.google)在国内直连不一定通,用在 fallback 里时建议让它们走代理:在 nameserver 地址后加 #节点组名,例如 https://1.1.1.1/dns-query#节点选择(Mihomo 支持),或在 proxy-server-nameserver 里指定。
proxy-server-nameserver 另一个用途是解析机场节点本身的域名,填国内可直连的 DNS,避免节点域名解析失败导致全部超时。
IPv6 开关
ipv6: false 是多数默认配置的选择。原因:
- 很多家庭宽带的 IPv6 直连质量不稳定,开了之后部分国内网站忽快忽慢。
- 机场节点大多只提供 IPv4 出口,设备解析到 AAAA 记录却走不通,表现为网页「转圈」一会才打开。
- 部分流媒体对 IPv6 出口的判定与 IPv4 不同,解锁结果不一致。
什么时候打开:你的机场节点明确支持 IPv6 出口、宽带 IPv6 稳定、并且你需要访问纯 IPv6 服务。否则保持关闭。注意 dns.ipv6 和全局 ipv6 两个开关要一致,只开一个会出现解析到 AAAA 却无法连接的情况。
一份可直接用的覆写示例
适用 Mihomo 内核客户端(Clash Verge Rev、FlClash 等),放在覆写里会替换订阅的 dns 段:
dns:
enable: true
ipv6: false
listen: 0.0.0.0:1053
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- '*.local'
- '+.msftconnecttest.com'
- '+.msftncsi.com'
- 'localhost.ptlogin2.qq.com'
- '+.stun.*.*'
default-nameserver:
- 223.5.5.5
- 119.29.29.29
proxy-server-nameserver:
- https://doh.pub/dns-query
nameserver-policy:
'geosite:cn': 'https://doh.pub/dns-query'
'geosite:geolocation-!cn': 'https://1.1.1.1/dns-query#节点选择'
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
把 节点选择 换成你订阅里实际的主策略组名。覆写的操作位置见 Clash Verge Rev 教程;分流规则部分见 自定义分流规则教程。
各客户端在哪里改
- Clash Verge Rev:「订阅」页右键订阅卡片 →「编辑覆写」,或全局「覆写」页新建一份 YAML 覆写并绑定到订阅。「设置」页另有「DNS 覆写」开关,开着时会用客户端内置的 DNS 段替换订阅的 DNS,自定义前先关掉它,否则你的改动被二次覆盖。
- FlClash:「配置」→ 对应配置 →「覆写」,或在「设置 → 网络 → DNS」里用图形界面改模式、nameserver 和 fallback,不必手写 YAML。
- Clash Party(Mihomo Party):「覆写」页新建 YAML 或 JavaScript 覆写,JavaScript 方式可以只替换
config.dns这一段。 - ClashMeta for Android:「覆写 → DNS」里有独立的图形设置,开启「覆写 DNS」后填写各项,与订阅无关。
- Stash / Shadowrocket(iOS):Stash 在覆写里写 dns 段;Shadowrocket 的 DNS 在「设置 → DNS」里单独配置,不走 Clash 语法。
- OpenClash(路由器):插件设置里有「DNS 设置」页,图形化勾选,其中「自定义上游 DNS」对应 nameserver 与 fallback。路由器场景下 DNS 还涉及 dnsmasq 转发,出问题的处理见 OpenClash 启动失败 / 部分设备不走代理。
无论哪个客户端,改完都要重新加载配置,手机端建议断开再连接一次,让 TUN / VPN 接口重新接管 DNS。
改错的典型后果与恢复
| 现象 | 原因 | 恢复 |
|---|---|---|
| 改完全部网站打不开 | default-nameserver 缺失或填了域名;DoH 地址需要代理却没指定;YAML 缩进错 | 删掉 DNS 覆写恢复默认,再逐段加 |
| 国内网站变慢 | nameserver 填了国外 DNS,国内域名解析到境外 CDN | nameserver 换回国内 DNS |
| 国外网站打不开但节点正常 | Redir-Host 下没有 fallback,被污染 | 加 fallback 或切回 Fake-IP |
| 微信、网银、国内 App 异常 | Fake-IP 影响 | 对应域名加入 fake-ip-filter |
| 开 TUN 后 DNS 失败 | TUN 要求 dns.enable 为 true 且 listen 可用 | 确认 enable: true,TUN 其他问题见 TUN 模式问题 |
| 流媒体解锁时好时坏 | 国外域名被国内 DNS 解析 | 用 nameserver-policy 把国外域名指向走代理的 DoH |
改之前备份当前配置(Clash Verge Rev 可以直接复制覆写文本),一次只改一项,改完立刻验证:打开一个国内网站、一个国外网站、一个 DNS 泄露检测站。三个都正常再改下一项。
相关
DNS 泄露是什么 · 自定义分流规则 · Clash 机场推荐 · Clash Verge Rev 教程
常见问题
Clash 的 DNS 要不要自己改?
多数人不需要。Clash Verge Rev、FlClash 等客户端默认 Fake-IP 加国内外分流解析,日常使用没有问题。只有遇到国内 App 异常、流媒体被判代理、DNS 泄露检测不过、特定局域网域名解析失败这几类症状时才改。
Fake-IP 和 Redir-Host 选哪个?
绝大多数场景选 Fake-IP:解析快、不受 DNS 污染影响、规则匹配准确。需要真实 IP 的场景(局域网设备、部分游戏、依赖 IP 的国内 App)用 Redir-Host 或把这些域名加入 fake-ip-filter。
nameserver 和 fallback 有什么区别?
nameserver 是主解析服务器,一般填国内 DNS;fallback 是备用,一般填国外加密 DNS,当结果命中 fallback-filter(如境外 IP、被污染的结果)时用它的答案。两者配合实现国内域名用国内 DNS、国外域名用国外 DNS。
开了 Clash 还会 DNS 泄露吗?
会,如果 nameserver 填了国内 DNS 又没有 fallback,国外域名的解析请求会发给国内 DNS。用 Fake-IP 模式加 fallback 走 DoH,或在 nameserver-policy 里把国外域名指向加密 DNS,可以避免。
改 DNS 后全部网站打不开怎么办?
通常是 nameserver 填的 DoH 地址本身需要代理才能访问,形成死循环;或者 YAML 格式错误。先把 DNS 配置恢复默认(删掉覆写或还原配置),能上网后再逐条改。
本文为信息整理与个人经验,不构成购买建议。机场政策与软件界面可能变化,以官方为准。发现过期内容请 联系纠错。