先说结论:配置项之间存在依赖关系:代理组决定出口,规则决定分流,DNS 影响解析,TUN 则改变流量接管范围。理解顺序比照抄片段更重要。
这篇文章解决什么问题
适合准备阅读 YAML、调整规则、DNS、代理组或 TUN 参数的读者。 本文围绕“Mihomo TUN 的 system、gVisor 和 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 编辑部根据项目官方文档与公开发布记录整理,没有使用虚构测速、评价或排名。软件界面和版本可能变化;发现步骤失效时,请以官方资料为准,并查看内容与测试说明。
内容更新说明:本页保留了原有的有效操作信息,并重新整理了问题边界和排查顺序。涉及订阅、节点和第三方服务时,请遵守所在地法律、服务条款与单位网络规范。

