Starway星途VPN - 访问海外网络加速 | 全球网络加速服务

Mihomo TUN 模式无法访问局域网怎么办?

更新于 2026-11-08 · xingtu.buzz

简答:先关闭 TUN 做对照:如果局域网立即恢复,优先检查 auto-route、strict-route 和真实内网 CIDR。然后只把目标设备或实际网段加入 route-exclude-address,重载配置并用 IP、域名和系统路由分别验证;allow-lan 主要控制其他设备使用本机代理,不负责本机绕过 TUN 访问局域网。

定义:Mihomo TUN 局域网访问失败,是系统访问路由器、NAS、打印机或内网服务时被 TUN 路由、严格路由或 DNS 处理接管而无法建立连接的故障。

先做四步速查:不要一上来排除全部私网

  1. 关闭 TUN 做对照:保留普通代理或直接关闭代理,访问同一个局域网 IP,例如路由器管理地址、NAS 地址或打印机地址。关闭 TUN 后仍打不开,问题不一定在 Mihomo,应先检查 Wi-Fi、网线、设备防火墙和局域网本身。
  2. 确认目标 IP 与真实网段:记录目标设备 IP、子网掩码和网关。例如设备为 192.168.50.20、掩码为 255.255.255.0,通常应先按 192.168.50.0/24 验证,而不是直接套用大范围私网段。
  3. 先排除单个地址:在 tun.route-exclude-address 中暂时加入目标设备的 /32 地址。官方文档将该字段定义为在启用 auto-route 时排除自定义子网;具体字段名称和支持情况仍需以所用核心版本为准。Mihomo TUN 配置文档
  4. 重载并复测:关闭再开启 TUN,或通过客户端的配置重载功能应用修改。成功判据是目标 IP 能打开、路由表显示流量走实际局域网接口,且开启 TUN 后外网仍按原计划工作。

本文是站点整理的 Mihomo 使用排查指南,不代表任何客户端或服务品牌的官方说明。配置示例仅用于说明思路,不能替代对当前 Mihomo 核心版本、操作系统和客户端界面的核对。

先分流:局域网打不开、域名打不开和全网断开不是一回事

现象优先怀疑第一项验证成功判据
只有路由器、NAS或打印机打不开,外网正常局域网目标被 TUN 路由接管关闭 TUN访问目标 IP,再测试单个 /32 排除开启 TUN 后目标 IP仍可访问
IP能访问,内网主机名打不开内网 DNS、.lan、.local或 Fake-IP分别测试 IP、短主机名和完整域名IP与域名解析结果符合内网 DNS预期
开启 TUN后所有网站和局域网都打不开权限、虚拟网卡、系统路由、防火墙或多 VPN冲突关闭 TUN,查看 Mihomo 日志和系统路由变化关闭 TUN后系统网络恢复,重新开启后错误不再出现
只有一台电脑或一部手机打不开本机防火墙、应用排除、网卡或私有 DNS设置换另一台同网设备访问同一目标可区分是单设备故障还是全局路由故障

如果开启 TUN 后完全断网,不要先扩大 route-exclude-address。先记录客户端日志、TUN 网卡状态、当前配置和路由表,再回滚到开启 TUN 前的配置,避免把全局路由问题误判成局域网问题。

配置 route-exclude-address:从单个设备到真实网段

下面是仅示意、需按实际网段替换的配置片段:

tun:
  enable: true
  auto-route: true
  auto-detect-interface: true
  route-exclude-address:
    - 192.168.50.20/32

先使用目标设备的单个地址验证。如果 192.168.50.20/32 有效,再根据本机真实子网扩大为类似下面的范围:

tun:
  route-exclude-address:
    - 192.168.50.0/24

常见私有地址范围包括 192.168.0.0/16、10.0.0.0/8 和 172.16.0.0/12,但不应在没有核对本机路由表的情况下全部排除。公司 VPN、虚拟机网卡、容器网络、热点共享和第二个局域网可能也使用这些范围,盲目排除会造成路由冲突或让本应进入代理的流量直连。

修改后的验证顺序:

  1. 保存原配置副本,记录修改前的 tun 段。
  2. 加入一个 /32 目标地址并重载配置。
  3. 开启 TUN,访问目标 IP;不要先用浏览器域名判断。
  4. 如果成功,再扩大到实际 CIDR;如果失败,删除新增项并回滚。
  5. 查看日志中是否出现 TUN 启动失败、路由添加失败、权限错误或连接被重新捕获。

官方文档还说明,strict-route 会在启用 auto-route 时执行更严格的路由规则;Windows 下它会添加用于阻止普通多宿主 DNS 解析造成泄漏的防火墙规则,并可能影响某些虚拟化应用。因此,如果局域网设备、虚拟机或公司内网在开启严格路由后异常,应将该字段作为单独变量测试,而不是同时修改多个配置。官方 TUN 字段说明

不要混淆四个设置:路由排除、DIRECT、Fake-IP 与 allow-lan

设置主要作用不能代替什么
route-exclude-address在自动路由下排除指定目标地址或子网,让该流量不按 TUN 的默认路由处理不能自动修复错误的内网 DNS或设备防火墙
规则中的 IP-CIDR,...,DIRECT决定已经进入 Mihomo 规则处理的连接使用直连策略不能保证系统层面的 TUN 路由一定绕过
fake-ip-filter控制哪些域名不返回 Fake-IP;官方 DNS 文档列出该字段支持域名通配和域名集合不能替代正确的目标 IP 路由
allow-lan允许其他设备通过本机代理端口访问网络不等于允许本机访问局域网,也不等于绕过 TUN

官方全局配置文档将 allow-lan 定义为允许其他设备经过 Clash 代理端口访问互联网,并由 bind-address、lan-allowed-ips 等字段进一步限制访问范围。因而,本机访问 NAS 失败时,单纯把 allow-lan 改为 true 通常不是第一排查点。Mihomo 全局配置文档

IP能通但内网域名不通:再查 DNS 与 Fake-IP

把“连接失败”拆成两次测试:第一步直接访问设备 IP;第二步访问主机名或内网域名。若 IP能通、域名不通,优先检查内网 DNS,而不是继续扩大路由排除范围。

  1. 确认内网域名实际使用的 DNS服务器,例如路由器地址或公司 DNS地址;不要把公共 DNS能解析公网域名误认为它能解析内网域名。
  2. 检查 dns.enhanced-mode 是 fake-ip 还是 redir-host,并核对 fake-ip-filter 是否包含实际使用的内网域名后缀。
  3. 对于 .lan、.local 或公司内部域名,先做一个最小范围的过滤项测试,不要把所有域名都加入白名单。
  4. 清理 DNS 和 Fake-IP 缓存后重新解析。若客户端提供控制器 API,官方文档列出了 /cache/fakeip/flush 与 /cache/dns/flush 接口;是否开放以及接口地址取决于当前客户端配置。Mihomo API 文档

Windows 和 macOS 不能自动劫持发往局域网的 DNS 请求,Android 开启“私人 DNS”时也可能无法自动劫持 DNS;这些行为在官方 TUN 文档中有明确说明。遇到“IP通、域名不通”时,应同时记录 DNS服务器、解析结果、客户端模式和系统 DNS设置。官方 DNS 劫持说明

Windows 路由验证:确认目标走哪块网卡

适用范围:Windows 10、Windows 11以及支持 NetTCPIP 模块的 Windows 环境。请在 PowerShell 中执行只读查询,不要在未备份前直接删除系统路由。

Get-NetRoute -AddressFamily IPv4
Find-NetRoute -RemoteIPAddress 192.168.50.20
route print

Get-NetRoute用于查看 IP 路由信息,包括目标前缀、下一跳和路由指标;Find-NetRoute可查找访问指定目标地址时使用的地址和路由;route print可显示接口和路由表。相关命令的参数和适用系统请以 Microsoft Learn 为准。Get-NetRoute Find-NetRoute route print

成功判据:目标地址对应的路由应指向实际局域网接口,而不是只指向 Mihomo 的 TUN 虚拟网卡。若目标地址仍被导向 TUN,回到 route-exclude-address、auto-route 和 strict-route 检查;若路由正确但仍失败,再查 Windows 防火墙、目标设备服务端口和内网 DNS。

macOS、Linux 与 Android 的差异化排查

  • macOS:先确认 TUN 设备名称符合当前平台要求;官方文档说明 macOS 的 TUN 设备名只能使用 utun 开头。多网卡环境下,检查 auto-detect-interface 是否选择了正确出口;需要同时使用有线、Wi-Fi或虚拟网卡时,不要默认自动选择一定正确。
  • Linux:auto-redirect仅适用于 Linux,并要求同时启用 auto-route;如果使用路由器、容器或 nftables,应把系统防火墙规则、TUN接口和实际出接口分开记录。官方文档还说明,Linux 的 route-exclude-address-set涉及 nftables,并不是所有平台都适用。Linux TUN字段说明
  • Android:检查私人 DNS、应用排除项和 VPN 权限。官方文档列出 include-package、exclude-package 等 Android 应用范围字段;如果只有某个应用访问不了,先确认是否被排除或未被纳入 TUN,而不是修改整个局域网路由。

修改无效时的失败分支与回滚清单

  1. 单个 /32 无效:删除该项,关闭 TUN,确认设备 IP仍在线;检查设备是否更换了 DHCP 地址。
  2. 网段排除后外网异常:立即回滚到原配置,说明排除范围可能覆盖了公司 VPN、虚拟机或其他需要代理的地址。
  3. 配置能保存但 TUN不启动:核对字段缩进、字段名称和当前核心版本;官方文档同时保留了部分旧版 inet4/inet6 排除字段说明,不同客户端界面可能映射不同,不能把旧字段直接复制到所有版本。
  4. 重载后仍像旧配置:通过当前客户端的运行配置或控制器确认实际生效的 tun 段;官方 API 文档列出 /configs用于读取运行配置,具体访问权限取决于 external-controller和密钥设置。运行配置 API 说明
  5. 只有开启防火墙时失败:检查 Mihomo 核心是否被系统防火墙拦截。官方 TUN 文档指出,Windows 使用某些协议栈时可能需要允许核心通过防火墙。

建议保留一份“修改前配置、修改后配置、客户端版本、操作系统、目标 IP、路由查询结果和日志片段”。这样即使本次排查失败,也能准确回滚并避免重复修改。

结论:先定位层级,再扩大排除范围

Mihomo TUN 无法访问局域网时,最稳妥的顺序是:关闭 TUN做对照,确认目标 IP和真实 CIDR,使用单个 /32 验证,再扩大到实际网段;随后分别检查规则中的 DIRECT、Fake-IP DNS、allow-lan、系统路由和防火墙。不要把所有私网段一次性加入排除列表,也不要把“允许其他设备使用本机代理”当成本机局域网访问开关。

如果你的问题属于跨设备办公、远程访问内网或多网卡环境下的连接诊断,可在完成上述基础验证后,再记录延迟、丢包、网关、MTU和实际出口接口,避免只凭“能否打开网页”判断 TUN 是否正常。

常见问题

Mihomo 的 allow-lan 改成 true 就能访问局域网吗?

不能直接这样判断。allow-lan 主要控制其他设备是否可以通过本机代理端口访问网络,不等于本机绕过 TUN,也不负责修复本机到路由器、NAS或打印机的系统路由。

route-exclude-address 应该填写 192.168.0.0/16 吗?

不建议盲目填写。先确认目标设备 IP、子网掩码和网关,优先使用目标地址的 /32 验证,再扩大到实际 CIDR。过大的排除范围可能影响公司 VPN、虚拟机、容器或其他需要代理的流量。

为什么 NAS 的 IP 能打开,但 nas.lan 打不开?

这通常更像内网 DNS或 Fake-IP 过滤问题,而不是基础路由问题。请分别测试 IP、主机名和完整域名,核对内网 DNS服务器,并检查 fake-ip-filter 是否覆盖实际域名后缀。

开启 strict-route 后局域网和虚拟机都异常怎么办?

先记录当前配置并关闭 TUN做对照,再单独测试 strict-route。官方文档说明 Windows 下严格路由可能影响某些应用,例如虚拟化软件;不要同时修改多个字段,否则无法判断是哪项设置造成影响。

配置修改后为什么看起来没有生效?

可能只是编辑了文件但没有重载运行配置,也可能客户端使用了另一份配置。请确认当前运行配置中的 tun 段、重启或重载 TUN,并记录客户端日志;如果支持控制器,可按官方 API 文档读取运行配置。

相关阅读

参考资料

  1. MetaCubeX Meta-Docs:Mihomo TUN 配置文档
  2. MetaCubeX Meta-Docs:Mihomo 全局配置文档
  3. MetaCubeX Meta-Docs:Mihomo DNS 配置文档
  4. MetaCubeX Meta-Docs:Mihomo API 文档
  5. Microsoft Learn:Get-NetRoute
  6. Microsoft Learn:Find-NetRoute
  7. Microsoft Learn:route 命令