一句话结论:有桌面的 Linux 直接装 Clash Verge Rev 或 FlClash 的 deb 包;服务器或没有桌面的环境,用 mihomo 命令行加 systemd 后台运行。两条路用的都是 mihomo 内核,同一个 Clash 订阅都能用。本文以 Ubuntu / Debian 为例,其他发行版思路相同,只是安装包格式不同。
1. Linux 使用机场:先选方案
| 方案 | 适合环境 | 优点 | 缺点 |
|---|---|---|---|
| Clash Verge Rev | 桌面版 Ubuntu / Debian | 功能全,覆写方便 | 依赖桌面环境 |
| FlClash | 桌面版,多设备统一界面 | 简洁,与安卓一致 | 进阶功能较少 |
| mihomo 命令行 | 服务器、树莓派、无桌面系统 | 占用低、可长期后台运行 | 需要手动编辑配置 |
2. Linux 图形客户端:安装与导入订阅
- 到 Clash Verge Rev 或 FlClash 的官方 GitHub Releases 页面下载 deb 包。普通电脑选 amd64,树莓派等 ARM 设备选 arm64。
- 在下载目录执行
sudo apt install ./文件名.deb,apt 会自动补齐依赖。 - 从应用菜单打开客户端,在订阅或配置页面粘贴机场的 Clash 订阅链接并导入,选中这份配置。
- 在代理页面选好节点,打开系统代理开关。
也可以选 AppImage 格式,下载后加执行权限直接运行,不需要安装,适合不想动系统包的情况。
注意:Linux 的“系统代理”通常只对 GNOME、KDE 等桌面环境的代理设置生效,浏览器一般会跟随,但终端里的命令默认不会,下面第 5 步会讲怎么处理。
如果客户端的系统代理开关打开后浏览器仍然不走代理,可以到桌面环境的设置里手动检查:GNOME 在“设置 → 网络 → 网络代理”中选择手动,HTTP、HTTPS 和 SOCKS 主机都填 127.0.0.1,端口填客户端显示的混合端口;KDE 在系统设置的代理页面里做同样的设置。Firefox 有自己独立的代理选项,确认它设为“使用系统代理设置”。用完代理后记得把这里改回“无”或“禁用”,否则客户端退出后浏览器会无法上网。
3. 命令行:下载 mihomo 内核
到 mihomo 官方 GitHub 仓库的 Releases 页面,下载对应架构的 Linux 压缩包(文件名一般包含 linux-amd64 或 linux-arm64,扩展名为 gz)。上传到服务器后执行:
gunzip mihomo-linux-amd64-*.gz解压出可执行文件(文件名以实际下载为准)。chmod +x mihomo-linux-amd64-*加上执行权限。sudo mv mihomo-linux-amd64-* /usr/local/bin/mihomo移动到系统路径。mihomo -v能输出版本信息就说明安装成功。
不要用来路不明的一键脚本,脚本可能替换内核或上传你的订阅。发布页里常有多个同架构的文件,例如带 compatible 字样的兼容版,是给较老 CPU 准备的;普通电脑选标准版即可,运行时报“非法指令”一类错误再换兼容版。以后升级内核,只需下载新版本替换 /usr/local/bin/mihomo 并重启服务,配置文件不受影响;升级前先备份旧文件,出问题时直接换回。
4. 命令行:写入订阅配置并运行
- 新建配置目录:
sudo mkdir -p /etc/mihomo。 - 下载订阅为配置文件:
sudo curl -L -o /etc/mihomo/config.yaml '你的 Clash 订阅链接'。链接两侧的引号不能省,否则链接里的特殊字符会被 shell 误解析。 - 打开 config.yaml 检查开头几行,确认有 mixed-port(混合端口,常见为 7890)。如果没有,可以手动加一行
mixed-port: 7890。 - 前台试运行:
sudo mihomo -d /etc/mihomo。首次启动会下载 GeoIP 等规则数据,看到端口监听成功的日志后按 Ctrl+C 退出。
订阅格式不是 Clash 时,先参考 订阅转换教程。配置文件里包含你的订阅节点信息,建议把目录权限收紧,只允许 root 读取,多人共用的服务器尤其要注意。另外,如果配置里开启了 allow-lan,其他机器也能连这个端口,服务器上务必保持关闭,或者至少用防火墙限制来源地址。
5. 设置终端与系统代理
命令行程序大多读取环境变量。在当前终端执行:
export http_proxy=http://127.0.0.1:7890export https_proxy=http://127.0.0.1:7890export all_proxy=socks5://127.0.0.1:7890
想长期生效,把这几行写进 ~/.bashrc,再配合 unset http_proxy https_proxy all_proxy 随时关闭。apt 不一定读取这些变量,必要时在 /etc/apt/apt.conf.d/ 下单独设置代理。Docker 守护进程、git 等工具也各有自己的代理配置。如果嫌逐个设置麻烦,可以开启 TUN 模式:在配置里启用 tun 段,以 root 运行后所有流量都会被接管。
6. 用 systemd 后台运行与开机自启
新建文件 /etc/systemd/system/mihomo.service,核心内容如下:
[Unit]段写Description=mihomo和After=network-online.target[Service]段写ExecStart=/usr/local/bin/mihomo -d /etc/mihomo和Restart=on-failure[Install]段写WantedBy=multi-user.target
如果希望以普通用户而不是 root 运行,可以在 Service 段加上 User 字段,但这样开 TUN 时需要额外授予网络管理权限,新手直接用 root 运行更省事。
保存后执行 sudo systemctl daemon-reload,再执行 sudo systemctl enable --now mihomo。查看状态用 systemctl status mihomo,看日志用 journalctl -u mihomo -f。
订阅不会自动更新,可以写一个定时任务每天重新下载 config.yaml 后执行 sudo systemctl restart mihomo。切换节点可以在配置里开启 external-controller(只监听 127.0.0.1),再用官方的网页面板通过 SSH 端口转发访问,不要把控制端口直接暴露到公网。没有图形界面时,最方便的是打开 external-controller 后用网页面板选择;也可以在配置里把主策略组改成自动测速类型,让 mihomo 自己挑延迟最低的节点。
7. 怎么确认已经生效?
- 测试连通:执行
curl -I https://www.google.com,返回 200 或 301 等状态码说明代理通了;如果长时间无响应,说明环境变量没生效或节点不可用。 - 查出口 IP:用 curl 访问任一 IP 查询接口,返回的地区应与节点一致。
- 看日志:
journalctl -u mihomo -f中会实时出现连接记录和命中的规则。
如果 curl 能通但浏览器不通,问题在桌面代理设置;如果浏览器能通而 curl 不通,问题在终端环境变量。按这个思路分开排查,比反复重启服务更快找到原因。国内网站访问变慢时,检查是否误用了全局模式,规则模式下国内流量应当直连。
8. 其他发行版与常见环境的差异
前面的步骤以 Ubuntu / Debian 为例,换到其他环境时,主要差别在安装包格式和代理设置位置:
| 环境 | 图形客户端安装 | 需要注意 |
|---|---|---|
| Fedora / openSUSE 等 | 下载 rpm 包,用系统包管理器安装 | 防火墙默认较严格,开局域网连接时要放行端口 |
| Arch 及其衍生版 | 用 AppImage,或社区仓库里的打包版本 | 社区打包非官方维护,留意来源和更新时间 |
| 树莓派等 ARM 设备 | 选 arm64 版本,老设备可能需要 armv7 | 内存小,日志级别设为 warning |
| WSL2 | 一般不装客户端,直接用 Windows 端代理 | 代理地址要填 Windows 主机的 IP,而不是 127.0.0.1 |
| 云服务器 | 只用 mihomo 命令行 | 不要开 allow-lan,控制端口只监听本机 |
不管哪个发行版,内核和客户端都只从官方 GitHub 下载。遇到问题时先分清是“内核没跑起来”还是“程序没走代理”:前者看 systemd 状态和日志,后者看环境变量和桌面代理设置,按这两个方向排查基本都能解决。另外,订阅下载后只有几行或返回 403 时,可以在 curl 命令里用 -A 参数把客户端标识设为 clash 或 mihomo 再试一次。