Mihomo redir-host vs fake-ip

Mihomo/Clash 的 redir-host 模式先解析出真实 IP 再连接;fake-ip 模式先返回保留段虚拟地址,连接时再恢复域名交远端按域名路由,从而不必先用错误 A 记录定目标。

#type / concept #status / growing #tech / network #protocol / dns

[!info] related notes

Mihomo redir-host vs fake-ip

一句话定义

Mihomo/Clash 有两条核心 DNS 处理思路:redir-host 先解析出真实 IP 再建连;fake-ip 先返回保留段虚拟地址,待应用连接该地址时再恢复原始域名、按域名规则选择出口并把域名交给远端解析。

核心机制 / 工作原理

redir-host(先拿真实 IP)

域名
  ↓ Mihomo DNS 解析
真实 IP(如 104.17.x.x)
  ↓ 路由和连接

若内部 DNS 返回了错误/不可用 IP,代理仍会连接这个地址——问题在解析阶段已定(见 proxy-and-dns-separation)。

fake-ip(先拿虚拟地址,后恢复域名)

anyrouter.top
  ↓ Mihomo 返回保留段虚拟地址 198.18.x.x
应用连接 198.18.x.x
  ↓ Mihomo 恢复原始域名
按域名规则选出口(如 Oracle1)
  ↓ 把域名交给远端代理节点解析

重要优势:不必先获得真实目标 IP,就能按域名完成代理路由,并把域名继续交给远端节点。

解析控制项

Mihomo 文档区分 fake-ipredir-host,并提供:

  • nameserver-policy:为特定域名指定解析器
  • proxy-server-nameserver:代理服务器用的解析器
  • direct-nameserver:直连域名用的解析器
  • respect-rules:是否让 DNS 结果也受路由规则影响

最小例子 / 最小场景

dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.x.x/16
rules:
  - DOMAIN-SUFFIX,anyrouter.top,PROXY

配合高优先级域名规则,浏览器拿到 fake IP → Mihomo 恢复域名 → 按规则走 Oracle1 → 域名交远端解析,绕开本地错误 A 记录。

边界与易混淆点

  • fake-ip 不解「解析本身」,它解「解析决策位置」:把域名保留到连接时才定,从而让远端/规则参与(见 proxy-and-dns-separation)。
  • TUN 模式可劫持发往 53 的 DNS 请求送入 Mihomo 内部 DNS,避免程序绕过;但 DoH、Android Private DNS、硬编码 DoH 等仍能绕过(见 browser-secure-dnsdns-filtering-hijacking-pollution)。
  • strict-route 在 Windows 上可通过防火墙规则减少多网卡 DNS 泄漏。
  • nameserver-policy 让某域名走特定 DoH(可带 #PROXY 表示经某代理出口),但答案仍取决于该 DoH 递归从权威拿到的内容,不等同「直接用 Oracle 系统 DNS」(见 dns-bootstrap-problem)。
  • 验证:看 Mihomo 连接日志的目标 IP 是 104.17.x.x 还是 155.102.x.x,即可判断是否在连接前采用了本地 DNS 结果(见 dns-wrong-ip-tls-handshake-failure-debug)。
创建于 2026/7/31 更新于 2026/7/31