Clash DNS 怎么设置?fake-ip 与 redir-host

先说结论

代理软件接管 DNS,是为了让域名规则可用并避免本地解析出错。fake-ip 先返回假地址、由节点端解析,快且规则好用但个别软件不兼容;redir-host 解析真实地址,兼容性好但依赖上游。普通用户用机场配置或默认值,遇到具体问题再改。

Clash DNS 怎么设置?先给结论:绝大多数人不用改,机场配置和客户端默认值已经够用。要改之前,先搞清两件事:代理软件为什么要接管 DNS,以及 fake-ip 和 redir-host 这两种工作方式到底差在哪。读懂这两件事,你遇到“某个软件不正常”“国内网站被解析得很奇怪”时,才知道该动哪一个开关,而不是一通乱改。

代理软件为什么要接管 DNS

DNS 的作用是把域名翻译成 IP 地址,你访问任何网站之前,几乎都要先做一次这样的翻译。如果想先了解它的基本原理,可以看 Cloudflare 对 DNS 的说明。

对代理软件来说,DNS 不是旁枝末节,而是整套分流能否成立的前提,原因有三个:

  1. 规则是按域名匹配的。 如果应用在本地先把域名解析成了 IP,再把 IP 交给代理,代理看到的只是一串数字,写在规则里的域名就用不上了。接管 DNS,是为了让内核知道“这个连接原本要去哪个域名”。
  2. 本地解析的结果不一定可信。 在某些网络环境下,对特定域名的解析结果可能被篡改或返回错误地址,这就是常说的 DNS 污染。
  3. 本地解析会暴露你要访问的域名。 流量走了节点,域名查询却发给了本地运营商的 DNS,这就是 DNS 泄漏,检测与修复另有专文。

所以内核提供了自己的 DNS 模块,由它决定怎么解析、返回什么。设置它,就是在回答这几个问题。

Clash DNS 的两种工作方式:fake-ip 与 redir-host

在 Mihomo 系配置里,dns 段有一个字段决定内核用哪种方式工作,字段名和可选值以 Mihomo 官方文档 为准。常见的两种是 fake-ip 和 redir-host。

fake-ip 的流程:

  1. 应用要访问某个域名,向 DNS 发起查询。
  2. 内核不去查真实地址,而是立刻返回一个来自保留网段的“假地址”,并记下“假地址对应哪个域名”。
  3. 应用向这个假地址发起连接,内核收到后,通过记录还原出域名。
  4. 内核按域名匹配规则,需要代理的,把域名交给节点,由节点端去做真实解析。

redir-host 的流程:

  1. 内核自己去解析出真实 IP,返回给应用,同时记下 IP 和域名的对应关系。
  2. 应用向真实 IP 发起连接。
  3. 内核看到这个连接,用记录反查域名,用于匹配规则。能反查到多少,取决于缓存和嗅探功能,细节以官方文档为准。

对比如下:

对比项 fake-ip redir-host
应用拿到的 IP 保留网段里的假地址 真实地址
是否需要先本地解析 不需要,连接时才解析 需要先解析
域名规则 天然可用,因为一开始就记住了域名 依赖反查,可能存在匹配不到的情况
对本地解析污染的敏感度 较低,需代理的域名由节点端解析 较高,取决于上游解析结果
软件兼容性 个别软件需要真实地址,会不兼容 兼容性更好
排查时的观感 查询结果是假地址,容易让人困惑 与平常一致
适合 追求速度和规则准确,常搭配 TUN 兼容性优先,或遇到 fake-ip 不兼容的软件

fake-ip 的优缺点和常见问题

fake-ip 被不少配置采用,因为它先天解决了“规则要域名”和“本地解析不可信”两个问题,也省去了一次等待。但它的代价是应用拿到的不是真地址,这会在下面几类场景里暴露出来:

场景 为什么受影响 常见处理
时间同步失败 需要访问时间服务器的真实地址 把相关域名加入 fake-ip 的例外名单
局域网设备发现、按名称访问 NAS 局域网名称不应返回假地址 把局域网域名加入例外名单
个别游戏、语音软件 需要真实地址做连通检测 例外名单,或对该软件改用直连
命令行里 ping、nslookup 查到怪地址 返回的是假地址 属于正常现象,不是错误
重启后短时间内个别连接异常 旧的假地址还留在应用或系统缓存里 清理客户端和系统的 DNS 缓存,重启应用

例外名单在配置里叫 fake-ip-filter,写法和默认值以官方文档为准。大原则是:哪个软件有问题,就给它相关的域名开例外,不要一次性关掉 fake-ip。

它和TUN 模式经常配合出现:TUN 接管流量,同时接管 DNS 查询,fake-ip 让域名信息在接管后不丢失。如果你只用系统代理,浏览器等应用会把域名直接交给代理端,DNS 这一层的重要性就小得多。

nameserver、fallback 这些字段在管什么

DNS 段里常见的字段,用一张表说明各自的作用,只讲概念,具体写法以官方文档为准:

字段 作用 概念上怎么理解
nameserver 主要使用的 DNS 服务器 默认的“问谁”
fallback 备用 DNS 服务器 对主服务器的结果存疑时,用它复核
fallback-filter 判断什么情况下启用备用结果 例如按结果的地理位置判断
default-nameserver 解析 DNS 服务器自己域名所用的服务器 用来先把“DNS 服务器的域名”解析出来,通常写纯 IP
nameserver-policy 针对某些域名指定服务器 让某类域名走专门的解析
proxy-server-nameserver 解析节点服务器域名所用的服务器 避免“连节点之前先要靠代理解析”的循环

下面是只展示结构的示意,服务器地址都是占位,请按你的需要和官方文档填写:

dns:
  enable: true
  ipv6: false
  enhanced-mode: fake-ip
  fake-ip-filter:
    - "*.example.com"
  default-nameserver:
    - 纯 IP 的 DNS 服务器
  nameserver:
    - 国内可用的 DNS 服务器
  fallback:
    - 国外可用的 DNS 服务器

加密 DNS,比如基于 HTTPS 或 TLS 的写法,会让查询内容在传输中不容易被看到,也能降低被篡改的可能,是否使用以及怎么写,同样以官方文档为准。

Clash DNS 的设置原则:普通用户怎么办

DNS 设置的坑最多,因为字段之间互相影响,改一处可能牵动别处。给普通用户的原则只有一条:沿用机场配置或客户端默认值,遇到具体问题再改。

按你的情况来选:

  • 只用系统代理上网,没有遇到异常: 不用动。
  • 开了 TUN 后某个软件不正常: 先看是不是 fake-ip 引起的,给相关域名加例外。
  • 国内网站被解析到很远的地址、速度变慢: 先检查国内域名走的是不是国内解析,再看开了梯子国内网站变慢。
  • 想检查有没有 DNS 泄漏: 直接按DNS 泄漏怎么查的方法检测,再回来改。

动手改的时候,遵守三条纪律:

  1. 改动前把原配置备份一份。
  2. 每次只改一个字段,改完测一次。
  3. 改完清理客户端和系统的 DNS 缓存,再重新开始测试。

DNS 污染和国内网站变慢:哪些现象和 DNS 有关

遇到访问异常,别急着归咎于 DNS。对照下表,大致判断:

现象 可能与 DNS 有关 先做什么
某个网站打不开,换节点后正常,或不同时间不同 可能是解析结果有问题,也可能是节点或线路问题 切换直连和全局对照,见Clash 规则模式、全局模式、直连模式怎么选
国内网站明显变慢 国内域名可能被解析到了远端地址,或被分流到了代理 看连接页面里的命中规则和出口,再检查国内域名的解析设置
命令行里查到的地址很奇怪 fake-ip 的正常表现 不需要处理
开 TUN 后某个软件失灵 fake-ip 与该软件不兼容的可能 给它的域名开例外
检测网站显示 DNS 请求发给了本地运营商 可能存在 DNS 泄漏 按泄漏检测的文章修复

分流规则本身对 DNS 的依赖,比如 GEOIP 规则需要先解析出 IP,也和这一层有关,规则的写法见分流规则怎么写。

怎么确认 Clash DNS 设置已经生效

改完之后,别只看客户端里的开关,自己核对:

  1. 确认当前模式。 在客户端的 DNS 设置页或配置里,确认当前用的是 fake-ip 还是 redir-host,以及配置真的被加载了。有些客户端会用自己的设置覆盖配置里的 DNS 段,以客户端说明为准。
  2. 用命令行验证。 开着 TUN 时,运行 nslookup example.com。如果看到保留网段里的地址,比如 198.18 开头,说明系统的域名查询确实经过了内核的 DNS,并且 fake-ip 在工作。只开系统代理时通常看不到这种地址,这是正常的。
  3. 看连接页面。 连接记录里的目标应当以域名显示,这说明内核掌握了域名,规则匹配有依据。
  4. 看被你加了例外的软件。 例外加好后,该软件应当恢复正常。
  5. 做泄漏检测。 方法见DNS 泄漏怎么查,这里不重复。
  6. 清缓存后再测一次。 客户端里清除相关缓存,系统里刷新 DNS 缓存,例如 Windows 可以运行 ipconfig /flushdns,再复测一次。

如果以上都符合预期,DNS 这一层就没有问题,应转去排查节点、规则或本地网络。

下一步:先沿用默认,出了问题再针对性改

  1. 先不动 DNS,用机场配置跑一段时间,把基础使用跑稳。
  2. 遇到明确的现象,再对照上面的表格,定位到具体是哪个软件、哪类域名,改一处、测一处。
  3. 想了解 TUN 接管和 DNS 的配合,看 TUN 模式是什么。
  4. 还没有订阅或不确定自己的线路是否合适,先去梯子推荐按用途筛选,再回头调整设置。

这篇没有覆盖的

  • DNS 字段的完整写法、默认值和新增选项以 Mihomo 官方文档为准,本文只讲概念和常用部分。
  • 各客户端里 DNS 设置页的位置和叫法会随版本变化,以当前界面为准。
  • 本文不推荐具体的 DNS 服务商,也不提供任何解析速度或污染情况的测试结果。

资料里明确写了支持 Clash 的机场

把 Clash 写进“客户端支持”的品牌目前很少。没写不等于不能用,多数机场都提供 Clash 格式订阅,只是资料里没有可核对的说明。

推荐名次机场推荐档资料里的价格线路
1无忧链接首推合¥6/月 · 40GB/月(按年付费)IPLC
7隐形人优先考虑年付¥109(约¥9.08/月) · 80GB(按年付费)纯专线

查看梯子下载与客户端对照

本文引用的官方来源

  1. Mihomo(Clash Meta)文档(wiki.metacubex.one)
  2. Cloudflare:What is DNS(www.cloudflare.com)

以上链接均为官方页面,选梯子在 2026-10-08 核对过;个别网站会拦截自动化访问,用浏览器直接打开即可。平台规则可能随时调整,以官方页面当前内容为准。

Clash DNS常见问题

fake-ip 和 redir-host 该选哪个?

没有绝对答案。fake-ip 解析快,域名规则好用,也不依赖本地解析,是不少配置的默认选择,缺点是个别软件不兼容。redir-host 返回真实地址,兼容性更好,但依赖上游解析的结果。普通用户沿用机场配置或客户端默认值,遇到具体问题再针对性调整。

为什么用 nslookup 查到的地址是 198.18 开头的?

这通常说明 fake-ip 在工作。内核为了先给应用一个答复,会返回保留网段里的假地址,并记住它和域名的对应关系,连接时再还原。看到这类地址不是错误。只有当系统的域名请求确实经过内核的 DNS 时才会出现,只用系统代理时一般不会看到。

普通用户需要自己改 DNS 设置吗?

大多数人不需要。机场配置和客户端默认值已经能满足日常使用,自己乱改反而容易引入新的问题。建议在遇到明确的现象,比如某个软件在 TUN 下异常、国内网站被解析到远端地址时,再按排查结果改一处、测一处。

fake-ip-filter 是干什么用的?

它是 fake-ip 模式下的例外名单。名单里的域名不会返回假地址,而是正常解析出真实地址。需要真实地址的场景,比如时间同步、局域网设备发现、个别游戏或语音软件,常常要把相关域名加进去。具体写法和默认值以官方文档为准。

DNS 污染是什么?Clash 怎么应对?

DNS 污染指某些网络环境下,对特定域名的解析结果被篡改或返回错误地址。代理软件常见的应对思路有三种:交给节点端解析,使用加密 DNS 查询,以及对可疑结果用备用服务器复核。这些只是思路,实际效果取决于你的网络环境,需要自己验证。

接着读

文中出现的术语

相关专题

还没定下来买哪家?

机场推荐榜把 28 家机场的价格、流量、线路和资料来源放在了一起;想省事可以用选梯子向导按用途筛一遍,或者直接看便宜机场、性价比机场和专线机场。