Mihomo 代理连接不上怎么办?按症状逐项排查
简答:Mihomo 代理连接不上,先做三步:确认内核已经启动并成功加载配置;临时关闭 TUN,仅通过 Mixed、HTTP 或 SOCKS 端口测试;在代理组中手动选择一个节点并查看日志。若端口测试能连接而 TUN 不能用,重点查权限、虚拟网卡、DNS 劫持和路由;若所有节点都超时,则优先检查订阅、网络和节点状态。
定义:Mihomo 代理连接失败,是指配置虽已导入,但内核、代理端口、节点出站、DNS解析、规则匹配或TUN流量接管中的某一层没有正常完成连接。
先做三步速查:不要一开始就改 DNS
本文是第三方使用指南,不代表 Mihomo 官方。为了避免把多个问题混在一起,建议按照“内核启动→普通代理端口→节点与规则→DNS→TUN”的顺序检查。
| 检查顺序 | 怎么做 | 看到什么算正常 | 下一步 |
|---|---|---|---|
| 1. 内核与配置 | 打开当前客户端的日志或内核状态页,确认配置加载完成、内核没有立即退出。 | 能看到运行状态,日志没有配置解析错误或端口绑定失败。 | 若内核没启动,先修配置或端口冲突。 |
| 2. 普通代理端口 | 暂时关闭 TUN,在系统代理或浏览器代理设置中使用客户端显示的 Mixed、HTTP 或 SOCKS 端口。 | 浏览器或测试应用能产生请求记录。 | 端口有请求但访问失败,转查节点、规则和 DNS。 |
| 3. 节点与代理组 | 不要依赖自动选择,手动选一个节点,再观察连接日志和请求记录。 | 请求进入代理组,节点出现连接或握手记录。 | 单节点失败查节点参数;全部失败查订阅、网络或解析。 |
Mihomo 的 mixed-port 同时支持 HTTP(S) 与 SOCKS5,端口号必须以当前配置和客户端界面显示为准,不能因为其他教程使用某个端口就直接照抄。wiki.metacubex.one
按日志关键词分流:先定位故障层级
| 日志或现象 | 更可能的原因 | 建议动作 |
|---|---|---|
connection refused、端口无法连接 | 内核未启动、端口被其他程序占用、客户端使用了错误端口。 | 回到内核状态页,重新确认当前配置中的 port、socks-port 或 mixed-port,必要时更换端口并重载配置。 |
timeout、节点长时间无响应 | 节点不可达、网络路径丢包、节点参数不匹配,或代理组仍选中了失效节点。 | 手动切换一个节点;如果只有一个节点失败,先不要改 DNS;如果全部节点失败,再查订阅和本地网络。 |
dns resolve failed、无法解析节点域名 | 节点域名本身无法解析,或 DNS 配置没有为节点域名提供可用解析路径。 | 检查 default-nameserver、nameserver 和 proxy-server-nameserver 是否存在且格式正确。 |
network is unreachable | 路由、网卡、TUN 接管或 IPv6 路径不通。 | 先关闭 TUN 复测;仍失败时检查出口网卡、系统网络和 IPv6 设置。 |
| 有请求但目标应用仍直连 | 应用没有使用系统代理,或规则把请求匹配到了 DIRECT。 | 先用浏览器验证系统代理,再切换到全局模式做一次对照测试,之后恢复原来的规则模式。 |
Mihomo 的日志级别可以从 error、warning、info 调整到 debug;排查时可临时提高日志级别,复现一次后再恢复,避免长期产生过多日志。wiki.metacubex.one
节点、订阅和代理组:先排除“选错出口”
- 确认订阅更新结果。如果更新后节点数量变成空、节点名称全部消失,先保留原配置,不要直接覆盖;检查订阅地址、返回内容和客户端提示。
- 手动选择节点。自动选择或 URL-Test 可能暂时保留一个不可用节点。手动选择后观察是否出现新的连接记录。
- 区分单节点与全节点失败。单节点失败通常先看协议参数、域名解析和节点本身;全部节点失败则优先看订阅、网络出口、DNS或内核状态。
- 检查运行模式。Mihomo 支持
rule、global和direct模式。规则模式下,请求可能因规则命中而直连;全局模式需要在全局策略组中选定可用代理。只用于短时间对照测试,确认后恢复原模式。wiki.metacubex.one
如果切换节点后日志仍完全没有请求记录,问题通常还没有到节点层,而是应用没有走代理端口、系统代理未生效或 TUN 没有接管流量。
DNS 失败怎么查:区分“解析节点”和“解析目标网站”
Mihomo 的 DNS 配置不只负责目标网站域名,还可能负责解析代理节点域名。官方配置中,proxy-server-nameserver 专门用于解析代理节点域名;如果它为空,Mihomo 会根据其他 DNS 配置继续处理。wiki.metacubex.one
- 节点域名解析失败:重点查看
default-nameserver与proxy-server-nameserver,确认地址格式、网络可达性和配置缩进。 - 节点能连但网站打不开:查看
nameserver、nameserver-policy、规则模式和请求日志,不要只替换一个 DNS 地址。 - 开启 Fake-IP 后个别应用异常:临时切换到
redir-host做对照。如果问题消失,再检查fake-ip-filter,不要直接删除所有 DNS 配置。 - DNS 改动后的回滚:保留原配置副本,只恢复最近修改的 DNS 段,重载配置后再次测试同一个域名。
DNS 配置中的 enhanced-mode 可使用 fake-ip 或 redir-host,两者行为不同;当前客户端是否暴露这些选项,以及菜单名称如何显示,应以该客户端界面和对应版本文档为准。wiki.metacubex.one
TUN 模式无法上网:先关闭验证,再检查权限和路由
- 先关闭 TUN。保留 Mixed 或其他普通代理端口,确认节点在非 TUN 模式下能否建立连接。若普通代理正常,故障范围就缩小到 TUN、DNS 劫持、路由或防火墙。
- 检查权限和虚拟网卡。Windows、macOS 和 Linux 的 TUN 权限、网卡名称和防火墙行为不同,不能直接套用其他系统的设置。
- 查看关键字段。重点核对
auto-route、auto-detect-interface、strict-route、dns-hijack与mtu。一次只改一个字段,修改前保存配置。 - 检查 DNS 劫持边界。官方文档说明,不同系统对 DNS 劫持的支持条件不同;例如 Windows 的某些严格路由场景,以及 Android 开启 Private DNS 时,可能影响自动劫持。wiki.metacubex.one
- 排除冲突软件。暂时退出其他 VPN、代理、网络过滤器和安全软件,再重新启用 TUN。测试完成后恢复原有安全设置。
TUN 属于网络层接管,普通 Mixed 端口则只接收被应用或系统明确指向代理端口的流量,因此“普通代理能用、TUN 不能用”并不矛盾。github.com
Windows、macOS、Linux 的恢复顺序
| 平台 | 建议先做 | 仍失败时 | 回滚方式 |
|---|---|---|---|
| Windows | 关闭 TUN,确认系统代理开关和客户端显示的代理端口。 | 检查防火墙是否拦截内核或 TUN 网卡,确认没有其他软件占用端口。 | 关闭 TUN,恢复原系统代理设置,再重启客户端。 |
| macOS | 关闭 TUN,确认系统网络代理和当前活动网卡。 | 检查应用权限、防火墙和虚拟网卡状态。 | 停用 TUN,关闭系统代理,重新加载原配置。 |
| Linux | 先用普通代理端口测试,再检查路由表、网卡和防火墙。 | 查看 TUN 出站规则、DNS监听和权限。 | 停用 TUN,恢复原路由和 DNS 配置。 |
不要把某一前端的端口、控制器地址或菜单路径当作 Mihomo 的固定值。客户端可能动态选择控制端口,具体数值应以当前界面和日志为准;官方 API 可用于读取当前运行配置、日志和版本信息,但是否开放该入口取决于客户端配置。wiki.metacubex.one
复测清单:确认修好后再恢复高级设置
- 先用同一个节点、同一个目标地址复测,避免同时更换多个变量。
- 确认客户端请求记录出现,且代理组没有自动跳回不可用节点。
- 普通代理端口正常后,再单独启用 TUN。
- TUN 正常后,再恢复 Fake-IP、规则自动选择或其他高级选项。
- 把临时的
debug日志级别改回原值。 - 如果仍无法连接,导出脱敏日志时删除订阅地址、密钥、用户名、密码和节点服务器信息。
最稳妥的回滚顺序是:关闭 TUN→恢复系统代理→恢复最近一次可用配置→重新启动内核→只启用普通代理端口测试。这样可以判断问题来自配置改动,还是来自节点、订阅或本地网络。
常见问题
Mihomo 代理连接不上,应该先换节点吗?
不建议第一步就换节点。先确认内核已启动、配置已加载,并关闭 TUN 通过 Mixed、HTTP 或 SOCKS 端口测试。只有在请求已经进入代理组、但某个节点持续超时时,才适合比较其他节点。
Mihomo 有请求记录但浏览器打不开怎么办?
先检查代理组是否选中了可用节点,再短暂切换全局模式做对照。如果全局模式能用,重点检查规则是否把目标请求匹配成 DIRECT;如果全局模式也不能用,再看节点和 DNS 日志。
Mihomo 显示 dns resolve failed 是什么问题?
它表示某个域名解析没有成功,但要先分清是代理节点域名还是目标网站域名。节点域名优先检查 default-nameserver 与 proxy-server-nameserver;目标网站则检查 nameserver、规则和 Fake-IP。
为什么关闭 TUN 后能用,打开 TUN 就断网?
这通常说明节点本身未必有问题,故障更可能在 TUN 权限、虚拟网卡、auto-route、strict-route、DNS 劫持、防火墙或出口网卡选择。先保持 TUN 关闭完成普通代理验证,再逐项恢复。
Mihomo 的端口是不是固定为 7890?
不是。端口由当前配置或客户端动态分配,常见字段包括 port、socks-port 和 mixed-port。请以当前客户端显示值和运行配置为准,不要直接照搬其他教程中的端口。