DNS 问题 · 知识百科

Fake-IP 与 Redir-Host 区别及怎么选

作者:机场a 编辑部 更新: 阅读约 3 分钟

Fake-IP 与 Redir-Host 是 Clash 系客户端(如今主要是 mihomo 内核)DNS 的两种增强模式:Fake-IP 先返回一个假地址、由客户端按域名转发,Redir-Host 先查询真实 IP 再连接。日常使用多数人选 Fake-IP,遇到局域网、游戏等兼容问题时再用过滤列表或切换模式。

两种模式的基本原理

Fake-IP 怎么工作

  1. 应用请求解析 example.com;
  2. 客户端不去真正查询,而是从 fake-ip-range(常见为 198.18.0.1/16)中分配一个地址立即返回,并记下“假地址对应哪个域名”;
  3. 应用向这个假地址发起连接,流量进入客户端(通常依靠 TUN 模式);
  4. 客户端查表还原出域名,按规则匹配:走代理时把域名交给节点,由节点在远端解析并连接;走直连时再在本地真正解析。

因为走代理的域名不需要在本地等待真实解析,首次访问更快,也不会受本地污染影响。

Redir-Host 怎么工作

  1. 应用请求解析 example.com;
  2. 客户端按 nameserver 配置真实查询,拿到真实 IP 返回给应用;
  3. 应用向真实 IP 连接,客户端根据之前的解析记录或流量嗅探还原域名,再按规则分流。

它返回的是真实地址,兼容性更好,但每个新域名都要先等一次 DNS 往返;如果 DNS 配置不当,还可能拿到被污染的结果。

redir-host 在 mihomo 中的现状

根据 mihomo 官方文档,enhanced-mode 的可选值是 fake-ip 和 redir-host,默认值是 redir-host。也就是说,在 mihomo 中它仍然可用,实际行为可以理解为“返回真实 IP 的普通模式”。早年原版 Clash 的 redir-host 有不少问题,社区讨论中的很多结论来自那个时期,看旧教程时需要注意。

对比表

维度 Fake-IP Redir-Host
返回给应用的地址 保留段假地址(如 198.18.x.x) 真实 IP
首次连接速度 快,不等待真实解析 需要等待一次 DNS 往返
抗污染 走代理的域名由节点远端解析,不受本地污染 取决于 nameserver 是否可靠
DNS 泄露 配合 TUN 时较少 本地需要真实查询,配置不当更容易泄露
兼容性 局域网、P2P 游戏、NTP 等可能异常 好,应用拿到的是真实地址
关闭客户端后 可能残留假地址缓存 基本没有残留问题
依赖条件 需要流量进入客户端,通常配合 TUN 系统代理和 TUN 都可用

适用场景

  • 适合 Fake-IP:日常浏览、看视频、使用 AI 服务,追求打开速度和防污染;电脑端开启了 TUN 模式;路由器上的 OpenClash 等透明代理;
  • 适合 Redir-Host:家里有很多局域网设备、经常联机打游戏、公司内网域名较多,或者应用需要拿到真实 IP;不想处理 198.18 缓存残留的用户;
  • 折中方案:保持 Fake-IP,同时用 fake-ip-filter 排除少数需要真实地址的域名。具体排查方法见《fake-ip 兼容问题排查》。

配置示例

mihomo 的 Fake-IP 写法:

dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter-mode: blacklist
  fake-ip-filter:
    - '*.lan'
    - '+.local'
    - 'time.*.com'
  nameserver:
    - https://223.5.5.5/dns-query
    - https://doh.pub/dns-query

fake-ip-filter-mode 可选 blacklist(默认,列表中的域名返回真实 IP)、whitelist(只有列表中的域名返回假 IP)和 rule(用规则语法逐条匹配)。

切换为 Redir-Host 只需修改一行,其余 nameserver 设置保持不变:

dns:
  enable: true
  enhanced-mode: redir-host

在图形客户端中,这一项通常位于「DNS 覆写」或「DNS 设置」里,例如《Clash Verge Rev》和《Clash Meta for Android》都可以修改。sing-box 也有 fakeip 机制,但配置格式不同(1.12 版起 DNS 配置有较大调整),请参考《sing-box 教程》和官方文档。更多客户端对比见《客户端大全》。

修改模式后记得重载配置并清除系统 DNS 缓存,Windows 执行 ipconfig /flushdns,macOS 执行 sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder。

常见问题

Fake-IP 一定比 Redir-Host 快吗?

首次连接通常更快,因为走代理的域名不用在本地等待解析。但连接建立后,下载和播放速度主要取决于节点线路,两种模式差别不大。

用 Fake-IP 时 ping 出来是 198.18 开头,正常吗?

正常,这就是假地址。只有关闭客户端后仍然出现才需要清缓存,处理方法见《DNS 问题排查》。

哪种模式更不容易 DNS 泄露?

一般是 Fake-IP 配合 TUN,因为走代理的域名不需要在本地真实查询。但只开系统代理时两种模式都可能泄露,检测方法见《DNS 泄露检测与防护》。

mihomo 里不写 enhanced-mode 会怎样?

按官方文档,默认就是 redir-host。如果你想用 Fake-IP,需要显式写上 enhanced-mode: fake-ip。

游戏联机异常要直接换 Redir-Host 吗?

不一定。先尝试把游戏和 STUN 相关域名加入 fake-ip-filter,如果需要排除的域名太多,再考虑切换模式。

相关阅读

按 ⌘K / Ctrl+K 打开搜索