直接答案:system 使用系统网络栈,gVisor 使用用户态网络栈,mixed 对 TCP 和 UDP 组合使用不同实现。Mihomo 文档当前列出三种选择,并说明没有特殊问题时可考虑 mixed;实际仍应以操作系统、内核版本和应用兼容性测试为准。
system 堆栈
system 更依赖操作系统网络栈,通常具有较直接的系统集成和性能表现,但行为会受平台差异影响。若当前系统和应用工作正常,不需要为了追求“更高级”而切换。出现特定 UDP、路由或防火墙问题时,应结合日志判断,而不是只看堆栈名称。
gVisor 堆栈
gVisor 在用户态实现网络栈,能提供另一种兼容路径。官方文档中它仍是一个可选项,某些环境下可能更合适,也可能对特定协议或性能有不同表现。选择它时要实际测试网页、下载、语音和游戏等自己的关键场景。
mixed 堆栈
mixed 组合 system 与 gVisor 的处理方式,目的在兼顾不同协议场景。Mihomo 文档会随版本演进,应查看当前版本的字段说明。它不是“自动修复所有问题”的开关,TUN 权限、DNS、路由和 MTU 配置错误仍会导致失败。
怎样做有意义的对照测试
- 保留相同配置和节点,只更改 stack。
- 重启内核并确认 TUN 正常创建。
- 测试 TCP 网页和下载。
- 测试实际需要的 UDP 应用。
- 比较错误率、稳定性和资源占用。
每次只改一项。如果 TUN 根本无法启动,先按权限、服务和防火墙步骤排查。
常见问题
mixed 一定比 system 快吗?
不能保证。堆栈选择更多涉及平台和协议兼容性,性能要在自己的网络与应用中测试。
切换 stack 需要重启内核吗?
通常需要让 TUN 接口按新配置重新建立,建议使用客户端的重启内核或重启服务功能。
TUN 能用就不需要系统代理了吗?
很多场景可以由 TUN 接管,但具体取决于客户端设置。排查时要避免不清楚的重复代理。
参考资料
内容说明:本文由 HowOClash 编辑部根据项目官方文档与公开发布记录整理,没有使用虚构测速、评价或排名。软件界面和版本可能变化;发现步骤失效时,请以官方资料为准,并查看内容与测试说明。