教程 阅读约 16 分钟

Linux 安装 Mihomo 并启用 TUN:systemd 常驻与桌面分流步骤(2026)

若你已在 Windows 或网关侧 OpenWrt 用过 Clash 系分流,却希望在纯 Linux 桌面或轻量服务器上直接跑 MihomoClash.Meta 内核)并开启 TUN 模式,让浏览器与终端默认走同一套路由,本文按可复现顺序说明二进制部署、最小配置、systemd 保活与开机自启,以及桌面侧代理与基础分流如何衔接。

Clash 编辑组 Linux · Mihomo · TUN · systemd · 桌面代理

为何在 Linux 上直接跑 Mihomo

MihomoClash.Meta 内核的常见发行形态之一,适合「不依赖图形界面、希望进程常驻、用配置文件管理一切」的用户。与仅开 HTTP / SOCKS 监听端口相比,开启 TUN 模式可以在内核里创建虚拟网卡,由 Mihomo 接管三层流量,从而让未单独配置代理的桌面应用、命令行工具在规则模式下按同一套策略选路,减少「浏览器走了代理、终端却直连」的分裂感。

代价是:你需要理解 Linux 下的权限(创建 TUN 设备通常需要 CAP_NET_ADMIN 或 root)、路由表DNS如何与 Mihomo 协同。下文默认读者具备基本命令行能力;DNS 字段级细节可对照 Meta 内核 DNS 防泄漏指南

环境与前置:内核、用户与权限

请使用较新的 Linux 内核(主流发行版默认内核通常已支持 TUN)。确认已加载 tun 模块(多数桌面发行版开箱可用)。计划以非 root 用户运行时,需要为该用户授予创建 TUN 与改路由的能力:常见做法包括通过 systemdAmbientCapabilities=CAP_NET_ADMIN,或使用发行版提供的 /dev/net/tun 访问规则;若你暂时用 root 跑通再收紧权限,也是一种务实的学习路径。

若同时运行 NetworkManagerfirewalld 或其他会下发默认路由的服务,开启 TUN 后可能出现路由优先级策略路由冲突。排错时请记住:Mihomo 的 tun.auto-route 会尝试自动管理主路由,复杂网络环境下可能需要你手动核对 ip route 与 DNS。

提示:在远程 SSH 服务器上首次启用 TUN 与自动路由前,建议保留第二条管理链路(如 IPMI、串口或云控制台),避免路由错误导致「把自己锁在门外」。

1获取二进制与目录布局

从 Mihomo / Meta 内核官方 Release 获取与你 CPU 架构匹配的可执行文件(如 linux-amd64linux-arm64),放入固定目录,例如 /opt/mihomo/mihomo,并赋予可执行权限。配置文件、运行日志与 Geo 数据建议分目录存放,例如 /etc/mihomo/config.yaml/var/log/mihomo/,便于备份与权限分离。

若你的订阅并非标准 Clash YAML,可先用 Subconverter 转为可用格式,再合并进主配置。策略组与节点名称一旦确定,后续规则里引用时须与之一致,否则会出现「规则命中但策略组不存在」的启动错误。

2最小配置:端口、控制器与 TUN 段

config.yaml 中至少配置 mixed-port(或分别的 port / socks-port)、external-controller 与密钥,便于本机 Web 面板或 API 调试。开启 TUN 时,在 tun 段设置 enable: true,并按环境选择 stack(常见为 systemgvisor,以你内核与稳定性实测为准)。auto-route: trueauto-detect-interface: true 有助于桌面场景自动处理默认路由;服务器多网卡时则需核对检测到的出口是否符合预期。

# Skeleton only — adjust ports, secret, and proxy groups to match your profile
mixed-port: 7890
external-controller: 127.0.0.1:9090
secret: "change-me"

tun:
  enable: true
  stack: system
  auto-route: true
  auto-detect-interface: true
  # dns-hijack:
  #   - any:53

dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - https://dns.google/dns-query

dns-hijack 是否启用取决于你是否要让 Mihomo 劫持本机 53 端口流量;与桌面 systemd-resolveddnsmasq 并存时,配置不当易产生环路,详见 DNS 一文 中的 TUN 与解析链说明。

3编写 systemd 服务:常驻与开机自启

/etc/systemd/system/mihomo.service 创建单元文件,使用 Type=simpleExecStart 指向二进制与配置路径,并设置 Restart=on-failurealways 以实现崩溃自拉起。对非 root 用户,可配合 User=Group=AmbientCapabilities=CAP_NET_ADMIN(以及 CapabilityBoundingSet)授予最小权限。修改单元后执行 systemctl daemon-reload,然后 systemctl enable --now mihomo 即可完成开机自启与立即启动。

# Example unit — paths and user must match your system
[Unit]
Description=Mihomo (Clash.Meta)
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=mihomo
Group=mihomo
ExecStart=/opt/mihomo/mihomo -d /etc/mihomo
Restart=on-failure
RestartSec=3
AmbientCapabilities=CAP_NET_ADMIN
CapabilityBoundingSet=CAP_NET_ADMIN

[Install]
WantedBy=multi-user.target

journalctl -u mihomo 报权限或 TUN 相关错误,请回到「用户、/dev/net/tun、capabilities」三者逐项核对;不要在未读日志的情况下反复改路由。

4桌面应用与终端:与 TUN 协同分流

TUN 开启且自动路由生效后,大部分不走独立代理设置的应用会跟随系统路由进入 Mihomo,这与仅设置 HTTP_PROXY 环境变量有本质区别:后者往往只影响「尊重环境变量的程序」,而 TUN 更贴近「整台机器默认策略路由」。仍有一些应用会自带代理开关或忽略系统路由,此时可回退到为它们单独指定 HTTP / SOCKS 指向 127.0.0.1:7890(端口以你的配置为准)。

对于 浏览器,若你已用 TUN 全局接管,通常无需再在浏览器里重复装 SwitchyOmega 类插件;若你更习惯「浏览器插件只代理浏览器」,则应关闭 TUN 或调整规则,避免双重路径与 DNS 不一致。开发与包管理场景下,gitnpmcurl 等行为可结合 Cursor / GitHub / npm 分流 一文中的域名级思路,在 Mihomo 规则中做精细命中。

5基础分流:规则顺序与规则集

Mihomo 遵循自上而下匹配:MATCH 常放在最后。国内直连与海外代理的拆分可直接写在 rules: 列表中,也可使用 rule-providers 引用远程规则集;GEOIP 与国内列表类规则可显著减少手写域名负担。不同规则集的维护策略与体积差异,可参考 ACL4SSR 与 Loyalsoldier 规则集深度对比,按你的主要访问场景选型。

初次上线建议先用较小规则集验证链路,再逐步加大;规则过大不仅增加内存占用,也会让排错时更难定位「哪一条命中」。策略组名称、节点可用性与订阅更新失败都会在日志中体现,养成看日志的习惯比盲目加规则更有效。

常见问题与排查顺序

服务起不来或反复重启:journalctl -xeu mihomo,检查 YAML 语法、策略组引用、端口占用与权限;再单独以前台方式运行二进制查看实时报错。

TUN 已开但无流量: 核对 ip link 是否出现 Meta 或类似接口,ip route 默认路由是否指向预期;关闭其他 VPN 或同类 TUN 软件排除争用。

网页能开但规则像失效: 多数是 DNS 与规则链不一致,按 FakeIP / Redir-Host 与本地解析服务的关系逐项对照 DNS 指南

仅想图形界面管理: 独立部署 Mihomo 适合进阶用户;若你更偏好官方打包的桌面客户端,也可从 本站下载页 获取 Clash 系客户端,在 Linux 支持的发行上获得与 Windows 教程 类似的图形化体验。

合规提醒:请仅在法律与网络使用政策允许的范围内配置代理与加密隧道;企业或校园环境可能禁止擅自绕行,违者后果自负。

关于获取软件:Mihomo 与 Meta 内核在 GitHub 等平台开源,便于查阅变更与提交 Issue;若你需要带图形界面的 Clash 客户端安装包作对照,请优先使用 本站下载页,与纯内核二进制分发区分理解。

小结

在 Linux 上用好 Mihomo,关键链路是:权限与 TUN → 可启动的最小配置 → systemd 保活与开机自启 → 路由与 DNS 对齐 → 规则与策略组可维护。相比只在用户态开本地端口,TUN 让「桌面应用代理」更接近系统级一致;而 systemd 则把这套行为从「临时手敲命令」变成「可预期、可恢复」的服务。

若你同时维护路由器与多台桌面,统一在 Meta 内核语境下理解订阅、规则与 DNS,长期成本通常更低;相比其他碎片化方案,Clash 系工具在规则生态与工具链上仍具备明显优势。

立即免费下载 Clash,开启流畅上网新体验

Clash 客户端 图形界面可选

独立部署 Mihomo 适合追求可控与自动化的用户;若你更希望开箱即用的图形界面与更新渠道,可从本站获取 Clash 系客户端,在支持的系统上与本文所述内核能力互补。

Linux 与多平台

按需选择内核直跑或图形客户端

TUN 与规则

与本文 Meta 内核语境一致

教程衔接

DNS、规则与场景文互相引用

本站分发

安装包入口集中、便于核对版本

上下篇导航

相关阅读

Linux 上统一 TUN 分流

独立内核或图形客户端,都可从本站获取 Clash 系工具,搭配教程更快跑通桌面与终端。

免费下载客户端