Linux 怎么用 Clash?Mihomo 命令行部署与 systemd 开机自启教程
有桌面的 Linux 直接装 Clash Verge Rev 即可。这篇讲的是没有图形界面的场景:云服务器、软路由以外的 NAS、开发机。我们直接运行 Clash 的现役内核 Mihomo(原 Clash.Meta,背景见 Mihomo 是什么)。
第一步:下载 Mihomo
到 GitHub 仓库 MetaCubeX/mihomo 的 Releases 页面,按 CPU 架构下载:
| 机器 | 文件名包含 |
|---|---|
| 普通 x86_64 服务器 / 电脑 | linux-amd64(很老的 CPU 选 amd64-compatible) |
| 树莓派 4/5、ARM 服务器 | linux-arm64 |
查看架构:
uname -m
下载并安装(把文件名换成你实际下载的版本):
gunzip mihomo-linux-amd64-*.gz
chmod +x mihomo-linux-amd64-*
sudo mv mihomo-linux-amd64-* /usr/local/bin/mihomo
mihomo -v
如果服务器无法访问 GitHub,可以在本地电脑下载后用
scp上传。
第二步:导入机场订阅
mkdir -p ~/.config/mihomo
curl -A "clash.meta" -o ~/.config/mihomo/config.yaml "这里换成你的 Clash 订阅链接"
-A "clash.meta" 是告诉机场「我是 Clash Meta 客户端」,避免拿到其他格式。下载后用 head 看一眼,开头应该有 proxies: 或 mixed-port: 等字段。
第三步:试运行
mihomo -d ~/.config/mihomo
首次运行会自动下载 GeoIP / GeoSite 数据库。如果服务器访问 GitHub 很慢导致下载失败,可以先在本地下载这些文件放到同一目录。
看到日志中出现 Mixed(http+socks) proxy listening at: 127.0.0.1:7890 之类的字样即为成功(端口以你配置文件为准)。按 Ctrl+C 停止。
第四步:设置 systemd 开机自启
创建服务文件:
sudo tee /etc/systemd/system/mihomo.service > /dev/null <<'UNIT'
[Unit]
Description=Mihomo
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
UNIT
把配置放到 /etc/mihomo,然后启用:
sudo mkdir -p /etc/mihomo
sudo cp ~/.config/mihomo/* /etc/mihomo/
sudo systemctl daemon-reload
sudo systemctl enable --now mihomo
systemctl status mihomo
第五步:让终端和程序走代理
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
curl -s https://ipinfo.io
返回的国家不是你所在地,说明代理生效。更方便的 proxy_on / proxy_off 写法见 终端代理设置教程。
Docker 拉取镜像走代理:Docker 守护进程不读取终端里的环境变量,需要单独为 docker.service 配置 HTTPS_PROXY,或者在 Mihomo 中开启 TUN 模式。
第六步(可选):Web 面板
在 config.yaml 中加入:
external-controller: 127.0.0.1:9090
secret: 换成一串随机密码
重启服务后,用 metacubexd 等 Web 面板连接 127.0.0.1:9090,即可在浏览器里切换节点、查看连接。不要把控制端口暴露到公网,远程管理时用 SSH 端口转发:
ssh -L 9090:127.0.0.1:9090 用户名@服务器IP
订阅自动更新
机场会更换节点,可以用 cron 定时更新配置:
sudo crontab -e
# 每天凌晨 4 点更新订阅并重启
0 4 * * * curl -A "clash.meta" -fsSL -o /etc/mihomo/config.yaml "你的订阅链接" && systemctl restart mihomo
注意:如果你在 config.yaml 里手动加过 external-controller 等设置,直接覆盖会丢失。更稳妥的做法是用 Mihomo 的 proxy-providers 引用订阅,把自己的设置放在主配置里。
遇到问题可以查 journalctl -u mihomo -f 的日志,常见原因见 Clash 常见问题。
常见问题
Linux 桌面版有图形界面的 Clash 吗?
有。Clash Verge Rev 和 FlClash 都提供 Linux 版(.deb / .rpm)。本文讲的是没有桌面环境的服务器或 NAS 上用命令行运行 Mihomo 内核。
下载订阅后节点为空怎么办?
部分机场会根据请求的 User-Agent 返回不同格式。用 curl 下载时加上 -A "clash.meta",让机场返回 Clash 格式的配置。
原来的 clash 命令还能用吗?
原版 Clash 内核已停更,不支持 VLESS、Hysteria2 等新协议,建议换成 Mihomo,配置文件格式兼容。