[Bug] EasyTier outbound 静默失效且不自愈(进程存活、其它代理正常,需重启 mihomo 恢复)
Author: HYYYQZCreated Sep 15, 2026Updated Sep 15, 2026
环境 Environment
- mihomo v1.19.31(
with_gvisor,go1.26.8),linux/amd64 - 运行形态:OpenWrt(Kwrt) 路由器,由 ShellCrash 托管,同一个进程内配了 2 个
type: easytieroutbound(分别对接两个站点节点) - 对端节点:独立的
easytier-corev2.6.4(Debian 13 LXC 容器,systemd) - 同一 ET 网络里还有第二个 mihomo 内嵌 ET 实例(Android / Surfing 模块)—— 它一直正常
- 网络配置:
secure-mode: true(Noise E2EE)+ 固定 X25519 密钥 + peers 用?peer-public-key=锁定
配置(已脱敏)Configuration
proxies:
- name: et_cs
type: easytier
network-name: <name>
network-secret: <secret>
secure-mode: true
local-private-key: <base64-x25519-private-key>
local-public-key: <base64-x25519-public-key>
ipv4: 10.144.144.12/24
udp: true
hostname: mihomo-str-cs
peers:
- "tcp://<peerA-host>:11010?peer-public-key=<base64>"
- "tcp://<peerB-host>:11010?peer-public-key=<base64>"现象 Symptoms
- 运行一段时间后该 outbound 静默失效,mihomo 本身不报错:
GET /proxies/et_cs→alive: false,history 全为delay: 0GET /proxies/et_cs/delay?...→{"message":"An error occurred in the delay test"}或Timeout- 同期:mihomo 进程正常、其它代理节点正常、路由器本身联网正常
- 对端视角(关键证据):在该 ET 网络上(独立
easytier-core节点)执行easytier-cli peer, 已经看不到这个 mihomo 节点(该 hostname 的记录消失);而同一时间能看到手机上那个 mihomo 内嵌实例仍在 peer 表里。 → 这不是"健康检查/路由"层面的问题,而是该 mihomo 侧的 ET 实例已经不在网内 - 同一时刻,从这台路由器本机
curl http://<peerA>:11010/(TCP 连接测试)可以建立连接(curl exit 52 = 已连接但对端非 HTTP) → 底层网络、对端监听、鉴权路径都是通的 - 不会自愈:等待 30+ 分钟状态不变,仍是
alive: false - 重启 mihomo 进程后立刻恢复:实例被重建,
/proxies/{name}/delay恢复(约 20ms), 对端easytier-cli peer里该节点重新出现(p2p,loss 0%)
出现时间线 Timeline(同一天内 3 次)
| 时刻 (CST) | 前序动作 | 结果 |
|---|---|---|
| 12:40 | 对端 easytier-core 容器重启(约 10 分钟前) | 该 outbound 不通 |
| 13:07 | 重启 mihomo 进程 | 恢复(delay ≈ 20ms) |
| 13:26 | 无明确动作(距上次恢复约 20 分钟) | 再次失效 |
| 14:06 | 无明确动作 | 仍失效 |
| 14:1x | 重启 mihomo 进程 | 恢复 |
观察(供参考):
- 触发似乎与「对端节点重启」有关(对端重启后本端实例未重连/未重建)
- 也可能与运行时长有关
- 路由器上拿不到 mihomo 的完整 stdout 日志(ShellCrash 托管),所以没有失败瞬间的 mihomo 日志; 如有需要,我可以做一次本机最小复现(本机跑 mihomo + 本地 easytier-core,重启对端后观察是否恢复)并把日志补上
期望行为 Expected
- 对端重启 / 网络抖动后,ET 实例应能自动重连或重建,不应永久失效
- 若确实不支持自动恢复,至少应在
/proxies状态或日志中给出明确错误,而不是静默变成死节点
补充观察 Notes(可能相关)
- 对端
easytier-cli peer里曾同时出现过该 mihomo 节点的p2p与relay(N)两条重复条目(可能是收敛中间态) - mihomo 的 easytier outbound 在未配置
listeners时不监听任何端口(已实测:对端无法主动连入;显式加listeners后可连入) - 当前规避方案(不影响本 issue 的成立):不把 ET 放在 mihomo 内,改为在一台常驻机器上跑独立
easytier-core, 再把它暴露成 SOCKS5(sing-box)给 mihomo 当普通出站使用;TCP/UDP 都已验证可用。改完后再没出现"实例静默失效"。
Source: MetaCubeX/mihomo