首页 · jinx.mom

Mihomo fake-ip 模式怎么设置?

更新于 2026-11-03 · jinx.mom

简答:Mihomo 的 fake-ip 模式在 DNS 配置中设置:启用 `dns.enable: true`,并将 `dns.enhanced-mode` 改为 `fake-ip`。最短路径是先备份当前配置,再加入最小 YAML,保存并重新加载,最后用 DNS 查询确认返回地址是否落在 `fake-ip-range` 内。若配置后仍返回真实 IP,优先检查当前 Profile、客户端 DNS 覆写、监听端口和 TUN 接管状态。

定义:fake-ip 是 Mihomo 的 DNS 处理模式:域名查询时先返回 fake-ip 地址,再由 Mihomo 根据域名映射和规则处理连接;另一种模式是 redir-host,通常直接返回真实解析地址。

先试这一步:加入最小 fake-ip 配置

本文是第三方使用指南站,Mihomo 字段和客户端界面可能随版本变化,以下内容以 Mihomo 当前文档为准。修改前先复制一份原 YAML,避免订阅更新或配置合并后无法回滚。

fake-ip 最小配置速查
字段作用设置建议
dns.enable启用 Mihomo DNS 处理true
dns.enhanced-mode选择 DNS 增强模式fake-ip
fake-ip-range分配 fake-ip 的地址池198.18.0.1/16
fake-ip-filter-mode决定过滤列表的匹配逻辑新手先用 blacklist
fake-ip-filter排除不适合 fake-ip 的域名先加入局域网和本地域名

将下面片段合并到当前配置的 dns: 区域,不要在同一份 YAML 中重复创建两个 dns: 顶级字段:

dns:
  enable: true
  listen: 127.0.0.1:1053
  ipv6: false
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter-mode: blacklist
  fake-ip-filter:
    - '*.lan'
    - '*.local'
    - 'localhost'
  default-nameserver:
    - 223.5.5.5
  nameserver:
    - https://dns.alidns.com/dns-query
    - https://doh.pub/dns-query

注意:223.5.5.5、DoH 地址只是示例,是否能从你的网络访问需要自行测试。若上游不可达,应替换为所在网络实际可访问的 DNS;不要因为示例地址无法连接就直接判断 fake-ip 功能失效。Mihomo 文档说明,default-nameserver 用于解析 DNS 服务器自身的域名,nameserver 用于普通域名解析,两者职责不同。

官方文档还说明,fake-ip-range 是 fake-ip 地址池,fake-ip-filter 中的域名不会获得 fake-ip 映射;fake-ip-filter-mode 支持 blacklist、whitelist 和 rule,具体语法应以当前文档为准。查看 Mihomo DNS 字段说明

保存、校验、重载:不要只改完 YAML 就结束

  1. 备份:复制当前配置文件,并标记为“修改前备份”。如果配置来自订阅或 Merge 模板,还要确认你改的是当前实际加载的 Profile。
  2. 合并:把 dns: 配置放在主配置中;如果客户端有“覆写”“Merge”“高级配置”或“DNS 设置”入口,检查它是否会覆盖 YAML。
  3. 校验:使用客户端自带的配置检查、重载或测试功能。出现 YAML 缩进、重复字段、端口占用等错误时,先恢复备份,再逐项加入字段。
  4. 重载:保存后执行客户端的重新加载配置;如果客户端没有热加载,完全退出并重新启动 Mihomo。
  5. 清缓存:若之前使用过 redir-host,重载后仍看到旧结果,可在客户端执行 DNS 缓存和 fake-ip 缓存清理。Mihomo API 文档列出了 DNS 缓存与 fake-ip 缓存的清理接口,是否能直接使用取决于客户端是否开放外部控制器。查看 Mihomo API 文档

不要把包含订阅链接、访问令牌、控制器密钥或节点信息的完整配置粘贴到公开论坛、在线解析器或截图中。验证时只保留无效占位值。

Windows、macOS、Linux、OpenWrt 怎么验证 fake-ip 是否生效

验证前先确认 listen 的地址和端口。例如上面的配置监听在本机 127.0.0.1:1053;如果该端口被占用,应换成空闲端口,并同步修改测试命令。

不同系统的验证方式
系统操作预期现象
Windows打开 PowerShell 或命令提示符,执行 nslookup example.com 127.0.0.1;若工具不能指定端口,可临时把监听端口改为系统可查询的本地 DNS 端口,或使用支持端口参数的 DNS 工具。查询经过 Mihomo;启用 fake-ip 时,A 记录通常应落在配置的 fake-ip 地址池内。
macOS终端执行 dig @127.0.0.1 -p 1053 example.com A。ANSWER 中的地址应与 198.18.0.0/16 地址池相符,具体地址会随域名和缓存变化。
Linux终端执行 dig @127.0.0.1 -p 1053 example.com A +short,再查看 Mihomo 日志。能看到 DNS 请求进入 Mihomo,并返回 fake-ip 地址或被过滤后的真实地址。
OpenWrt在路由器上执行 nslookup example.com 127.0.0.1:1053;同时检查 Mihomo 的 DNS 监听、透明代理和防火墙转发是否指向同一端口。终端设备的 DNS 请求确实经过 Mihomo,而不是继续由 dnsmasq 或上游系统 DNS 直接解析。

验证时不要只看浏览器能否打开网页。浏览器可能使用自身的安全 DNS、缓存或 DoH,导致测试绕过 Mihomo。更可靠的顺序是:先用 dig、nslookup 或客户端日志确认 DNS 请求,再测试网页和应用连接。

仅系统代理、TUN 和路由器透明代理的区别

仅系统代理:只有遵守系统代理的应用通常会经过 Mihomo。系统代理本身不一定接管所有 DNS 请求,因此即使 enhanced-mode: fake-ip 已启用,某些应用仍可能绕过 Mihomo。

TUN 模式:TUN 会接管更广泛的系统流量,fake-ip 通常与 DNS 劫持、路由和权限设置一起工作。若 TUN 已开启但网页仍直连,检查客户端是否获得系统权限、dns-hijack 是否启用、自动路由是否成功,以及本地 DNS 监听端口是否冲突。Mihomo 的示例配置将 TUN 的 DNS 劫持和 fake-ip DNS 分开配置,不能只改其中一项就假定全部流量已接管。查看 Mihomo 配置示例

路由器透明代理:除了 Mihomo 本身,还要检查路由器的 DHCP、dnsmasq、防火墙和转发链路。终端设备如果仍拿到路由器原 DNS,或者路由器把 53 端口转给其他服务,fake-ip 查询就不会进入 Mihomo。

fake-ip-filter 怎么写:先解决局域网和特殊应用异常

fake-ip 并不是所有域名都适合使用。局域网设备、打印机、路由器管理地址、本地域名和部分依赖真实地址的应用,可能需要加入过滤列表。可先从下面几类开始,再依据日志逐项增加:

  • *.lan:常见局域网域名。
  • *.local:部分本地发现或局域网服务使用的域名。
  • localhost:本机回环相关名称。
  • 实际出现异常的 NTP、STUN、游戏、投屏或打印机域名:只加入已确认会出问题的域名,不要一开始把所有域名都加入过滤列表。

在默认的 blacklist 模式下,列表通常表示“这些域名不使用 fake-ip”;在 whitelist 模式下,只有匹配项才返回 fake-ip,误切换模式会让大量域名表现为真实解析。官方文档还提供了 rule 模式,其语法与路由规则一致,适合已经熟悉 RuleSet、GEOSITE 或 DOMAIN 规则的用户,不建议新手直接从复杂规则开始。核对 fake-ip-filter 模式和通配符语法

常见故障分流:看到什么现象就查哪一层

fake-ip 配置不生效的排查顺序
现象优先检查处理方法
配置保存后仍返回真实 IP当前 Profile、Merge 覆写、enhanced-mode 是否被覆盖在客户端查看运行中的配置,而不是只看本地原文件;删除重复 DNS 字段后重新加载。
所有域名都无法解析上游 DNS 是否可达、监听端口是否冲突先将 nameserver 换成已测试可访问的上游,分别测试 UDP、TCP 或 DoH/DoT;确认端口没有被其他服务占用。
局域网、打印机或投屏异常域名是否需要真实 IP 或本地解析把实际异常域名加入 fake-ip-filter,重载后再测试;不要直接关闭整个 DNS 模块。
节点域名解析失败proxy-server-nameserver 和节点域名可达性如果节点域名需要独立解析,按官方字段说明配置专用解析器;该字段只负责代理节点域名解析,不等于普通域名解析器。
仅 TUN 下断网TUN 权限、DNS 劫持、自动路由和回环排除先关闭 TUN 验证系统代理是否正常,再逐项恢复 TUN、DNS 劫持和自动路由,失败时回滚到备份。

其中,proxy-server-nameserver 是代理节点域名解析用途;官方文档明确说明,若启用了依赖规则的 DNS 处理,相关 DNS 连接还需要配合节点域名解析配置,否则可能出现节点无法建立连接的现象。不要把这个字段当成所有网站 DNS 的替代品。

最后复测与回滚

  1. 先确认一个普通域名通过 Mihomo DNS 查询能够返回预期地址。
  2. 再确认一个局域网或本地服务域名仍能正常访问;如果异常,只过滤该域名。
  3. 分别测试系统代理和 TUN,不要在两种模式同时改变多项设置。
  4. 查看 Mihomo 日志,确认请求进入当前实例,而不是被浏览器或系统 DNS 绕过。
  5. 如果修改后出现持续断网,立即恢复备份,关闭 TUN 或 DNS 接管,先恢复基础网络,再逐项加回 fake-ip 配置。

最小可用的判断标准是:配置能通过客户端校验,DNS 监听端口可查询,普通域名在 fake-ip 地址池内返回映射,局域网和特殊应用通过过滤列表保持可用。不同客户端的菜单名称和默认端口可能不同,以当前客户端界面和 Mihomo 版本为准。

常见问题

Mihomo fake-ip 和 redir-host 有什么区别?

fake-ip 会返回地址池中的映射地址,再由 Mihomo 按域名和规则处理;redir-host 通常直接返回真实解析地址。TUN 或透明代理场景更常见 fake-ip,但局域网和特殊应用可能需要过滤。

为什么已经写了 enhanced-mode: fake-ip,查询仍是真实 IP?

先检查当前实际加载的 Profile,而不是只看原 YAML;然后检查 Merge、客户端 DNS 覆写、fake-ip-filter 模式和缓存。浏览器自带 DoH 也可能绕过 Mihomo,应先用 dig 或 nslookup 查询本地监听端口。

fake-ip-range 可以随便改吗?

不建议随意修改。官方文档将它定义为 fake-ip 地址池,常见示例是 198.18.0.1/16。若确有地址冲突,应先确认路由和局域网网段,再使用客户端和 Mihomo 当前文档支持的地址范围。

局域网设备开启 fake-ip 后找不到怎么办?

先确认设备使用的域名或本地发现名称,再把实际异常的域名加入 fake-ip-filter,例如 *.lan、*.local 或 localhost,保存并重载。不要直接把所有域名都加入过滤列表,否则 fake-ip 的作用范围会被大幅削弱。

仅开启系统代理,需要同时开启 TUN 吗?

不一定。系统代理只影响遵守代理设置的应用;TUN 才会接管更广泛的系统流量,但需要权限、路由和 DNS 劫持配合。先在系统代理模式验证 DNS,再单独开启 TUN 排查,便于定位问题。

相关阅读

参考资料

  1. Mihomo 官方文档:DNS configuration
  2. Mihomo 官方文档:Quick configuration
  3. Mihomo 官方文档:APIs