Mihomo Fake-IP 怎么关闭?改为 redir-host 的步骤与排查
简答:要关闭 Mihomo 的 Fake-IP,通常不是关闭整个 DNS,而是把 dns.enhanced-mode: fake-ip 改成 dns.enhanced-mode: redir-host,然后校验配置、重载或重启核心,并清理 Fake-IP 与 DNS 缓存。若只有局域网或个别应用异常,优先使用 fake-ip-filter,不必全局关闭。
定义:Mihomo 的 Fake-IP 是一种 DNS 增强模式:对域名返回配置地址池中的虚拟 IP,再由 Mihomo 根据映射转发;关闭它通常意味着把 enhanced-mode 改为 redir-host。
先试这一步:确认你要关的是 Fake-IP,而不是整个 DNS
如果你看到解析结果落在 198.18.0.0/16 一类地址中,这通常对应 Mihomo 配置中的 fake-ip-range,它不是目标网站或服务器的真实公网地址。Mihomo 文档将 fake-ip 和 redir-host列为 dns.enhanced-mode 的可选值;其中 Fake-IP 使用地址池保存域名与虚拟地址之间的映射。查看 Mihomo DNS 配置说明
先区分以下三件事:
| 你想解决的问题 | 应先检查的配置 | 是否需要关闭 Fake-IP |
|---|---|---|
| 局域网设备、内网域名或投屏发现异常 | fake-ip-filter、局域网域名、TUN 路由 | 通常不必全局关闭,先排除特定域名 |
| 某个应用无法登录或无法联网 | 应用自身 DNS、系统代理、TUN、规则命中 | 先做单应用或单域名对比测试 |
| 所有域名都不正常,且 DNS 请求没有按预期处理 | dns.enable、DNS 监听端口、dns-hijack | 仅切换模式可能不够,需要分层排查 |
关闭 Fake-IP 不等于关闭 Mihomo DNS,也不等于关闭 TUN。dns.enable: false 表示改用系统 DNS;而将 enhanced-mode 改为 redir-host,只是改变 Mihomo DNS 的处理模式。不要把这两个修改混在一起。
用 YAML 关闭 Fake-IP:把 enhanced-mode 改成 redir-host
先备份当前配置,再在实际生效的本地配置或本地覆写文件中找到 dns: 段。最小修改如下:
修改前:
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16修改后:
dns:
enable: true
enhanced-mode: redir-host
fake-ip-range: 198.18.0.1/16enhanced-mode 的有效值和 Fake-IP 过滤字段以当前 Mihomo 文档为准;改成 redir-host 后,fake-ip-range 不再是你关闭 Fake-IP 的关键开关,但可以暂时保留,避免误删其他配置。官方字段说明
- 关闭 Mihomo 客户端或暂停核心,避免编辑时被自动覆盖。
- 备份当前 YAML,至少保留修改前的
dns段。 - 只修改
dns.enhanced-mode,不要同时删除nameserver、nameserver-policy或proxy-server-nameserver。 - 保存后使用客户端提供的配置检查、应用、重载或重启功能。
- 如果客户端没有明显的“重载”按钮,完全退出并重新启动 Mihomo 核心。
不同客户端对配置文件的入口名称可能不同,常见查找范围包括“配置”“Profiles”“覆写”“高级设置”“DNS”“增强模式”或“Fake-IP”。无法确认某个界面是否保存本地修改时,不要直接改订阅原文,优先使用本地覆写或客户端提供的合并配置功能。
订阅更新后又变回 fake-ip,应该在哪里改?
如果你改完后重启或更新订阅,配置又恢复为 fake-ip,常见原因是你修改的是临时运行配置,或者订阅更新重新生成了 DNS 段。处理顺序如下:
- 先查看客户端当前运行配置,确认实际生效值,而不是只看下载到的订阅文本。
- 搜索当前配置中的
enhanced-mode,确认是否仍有多个配置文件或多个覆写层。 - 把修改放进客户端的本地覆写、配置合并或独立本地配置中,再重新应用。
- 更新订阅后再次检查运行配置;如果值又变成
fake-ip,说明订阅或合并层覆盖了本地设置。
不要为了关闭 Fake-IP 删除整个 dns: 区块,也不要把 dns.enable 改成 false 后直接判断问题已经解决。前者可能破坏其他 DNS 规则,后者会把解析交给系统 DNS,结果可能完全不同。
如果你使用外部控制器,也可以先读取运行配置确认实际状态;Mihomo API 文档列出了 /configs、重载配置以及清理 Fake-IP 和 DNS 缓存的接口。只有在你明确知道控制器地址和密钥时才执行 API 操作,不要复制他人的控制器地址或密钥。查看 Mihomo API 文档
修改后必须做的清理、重载与验证
配置成功应用后,旧的映射和旧连接可能仍然存在,因此建议按下面顺序处理:
- 在客户端执行配置重载;如果重载后状态不确定,重启 Mihomo 核心。
- 清理 Fake-IP 缓存和 DNS 缓存。Mihomo API 文档提供了
/cache/fakeip/flush与/cache/dns/flush接口;图形客户端是否提供对应按钮,要以当前客户端界面为准。缓存接口说明 - 刷新操作系统 DNS 缓存。Windows 可在命令提示符执行
ipconfig /flushdns;macOS、Android、iOS 的具体方式可能随系统版本和客户端不同,优先使用系统或客户端提供的重连功能。 - 完全退出并重新打开出现问题的应用,避免它继续使用旧连接或应用自己的 DNS 缓存。
- 关闭后重新查询一个此前会返回虚拟地址的域名,观察结果是否不再落入配置的 Fake-IP 地址池。
验证时不要只看 nslookup 或 dig 的单次结果,因为本地缓存、浏览器 DoH、应用自带 DNS、系统代理和 TUN 接管方式都可能影响观察结果。更可靠的最小对比是:记录关闭前结果,应用配置后清理缓存,再在同一网络、同一域名、同一客户端下重复查询,并同时查看 Mihomo 日志或连接列表。
如果系统解析结果已经变化,但目标应用仍无法连接,问题不一定是 Fake-IP。继续检查应用自带 DNS、系统代理、TUN 是否启用、规则是否命中,以及 DNS 监听端口是否被其他程序占用。
TUN、dns-hijack 与 Fake-IP 到底是什么关系?
Fake-IP 属于 DNS 处理模式;TUN 属于流量接管方式;dns-hijack 是把匹配到的 DNS 连接导入 Mihomo 内部 DNS 模块。三者可以同时出现,但不是同一个开关。
| 配置或功能 | 作用 | 关闭 Fake-IP 后是否自动关闭 |
|---|---|---|
dns.enhanced-mode | 选择 fake-ip 或 redir-host DNS 处理模式 | 不适用,改为 redir-host 即可切换模式 |
tun.enable | 启用 TUN 流量接管 | 不会自动关闭 |
tun.dns-hijack | 将匹配的 DNS 连接导入内部 DNS | 不会自动关闭 |
tun.dns-mode | 控制系统 DNS 的设置或劫持方式 | 不会自动改动 |
Mihomo 当前 TUN 文档将 dns-mode 的可选值列为 disabled、native 和 hijack,并说明 dns-hijack 用于把匹配连接导入内部 DNS;Windows、macOS 和 Android 对局域网 DNS、私人 DNS 或严格路由还有平台差异。查看 Mihomo TUN 配置说明
因此,若你的目标只是“不再返回 198.18.x.x”,先改 enhanced-mode;若目标是“完全不让 Mihomo 接管 DNS”,才需要进一步检查 dns.enable、TUN 的 DNS 设置和系统代理。但后者会改变更多网络行为,应先备份并准备回滚。
只解决局域网或个别应用问题:优先用 fake-ip-filter
如果全局 Fake-IP 本身没有问题,只是局域网域名、设备发现或某个应用不兼容,可以保留 enhanced-mode: fake-ip,为特定域名加入 fake-ip-filter:
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-filter-mode: blacklist
fake-ip-filter:
- '*.lan'
- '*.local'
- 'printer.example'上面只是结构示例,不代表所有网络都应使用这些域名;请把示例域名替换为你实际确认需要排除的域名。官方文档说明,过滤列表中的域名不会获得 Fake-IP 映射,并支持通配符和域名集合。Fake-IP 过滤字段说明
如果过滤后问题仍在,逐步缩小范围:先只加入一个已确认异常的域名,重载配置并重新打开应用;如果问题消失,再决定是否保留该规则。不要一开始把大量域名或通配符全部加入,否则可能让排查结果失去可比性。
失败时的回滚清单
改完后出现无法联网、DNS 报错或规则异常时,按以下顺序回滚:
- 把
enhanced-mode: redir-host改回原来的值,或恢复修改前的备份文件。 - 确认 YAML 缩进、冒号和列表格式正确,不要把同一个
dns:区块重复粘贴到文件中。 - 重载配置;如果重载失败,完全重启核心并查看错误日志。
- 暂时关闭 TUN 或系统代理做对比,但一次只改一个开关。
- 如果仍无法恢复,恢复完整备份,不要继续删除 DNS、规则或代理节点配置。
截至 2026-11-10,本文只采用当前可访问的 Mihomo DNS、TUN 与 API 文档中的字段说明;具体客户端的菜单名称、覆写能力和缓存按钮可能不同,未能从核心文档确认的界面细节应以你正在使用的客户端版本为准。
常见问题
Mihomo 关闭 Fake-IP 后,应该改成什么?
通常将 dns.enhanced-mode 从 fake-ip 改为 redir-host。不要同时把 dns.enable 改为 false,除非你明确希望改用系统 DNS。
看到 198.18.x.x 就一定要关闭 Fake-IP 吗?
不一定。198.18.x.x 通常是配置中的 Fake-IP 地址池。若只有局域网或个别应用异常,优先用 fake-ip-filter 排除特定域名。
改成 redir-host 后还是不能联网怎么办?
先确认配置已真正重载,再清理 Fake-IP、DNS 缓存并重启目标应用;随后检查 TUN、dns-hijack、系统代理、应用自带 DNS 和 DNS 端口冲突。
订阅更新后 Fake-IP 又自动开启,怎么处理?
检查当前运行配置是否被订阅覆盖,并把修改放入客户端的本地覆写、配置合并或独立本地配置中。不要只修改一次性的运行配置。
关闭 Fake-IP 会自动关闭 TUN 或 DNS 劫持吗?
不会。Fake-IP 是 DNS 增强模式,TUN 和 dns-hijack 属于不同配置层。是否关闭它们,需要根据流量接管和 DNS 排查结果分别决定。
相关阅读
- 继续看 Mihomo DNS 配置与 Fake-IP 基础
- 如果 TUN 开启后连不上,查看 Mihomo TUN 排查步骤
- 仍无法连接时,按订阅、节点、客户端和 DNS 分层排查
- 连接恢复后,再检查代理速度慢和节点问题