Clash Meta 下载站mihomo 客户端下载

mihomo Linux 服务器部署教程(含 systemd 自启)

安装教程 2026 年 6 月 17 日 4 分钟阅读
本文目录

在服务器或长期开机的小主机上跑 mihomo,思路和桌面完全不同:没有界面、没有托盘图标,内核交给 systemd 托管——开机自启、异常退出自动拉起、日志统一进 journal。软路由、家庭 NAS、VPS 这类无人值守的场景,用的都是这一套。

整个 mihomo Linux 部署过程只有四步:装二进制 → 放配置 → 写服务单元 → 启动验证。本站下载中心提供 mihomo v1.19.29 的 Linux amd64 与 arm64 两种 .gz 包,下面的命令在使用 systemd 的主流发行版上通用。

下载并安装 mihomo 二进制

先确认服务器的 CPU 架构,再到下载中心 Linux 分区取对应的包:

uname -m

输出 x86_64 就选 amd64,输出 aarch64 就选 arm64。下载到的是 gzip 压缩的单文件程序,解压后加执行权限,再移动到 /usr/local/bin 并统一改名为 mihomo,后续命令会短很多:

gunzip mihomo-linux-amd64-*.gz
chmod +x mihomo-linux-amd64-*
sudo mv mihomo-linux-amd64-* /usr/local/bin/mihomo

说明:实际文件名以你下载到的为准,把命令里的通配符替换成真实文件名效果相同。arm64 的包同理,只是文件名中的架构字样不同。

创建配置目录与 config.yaml

约定把数据目录放在 /etc/mihomo,启动时用 -d 指向它。这个目录除了 config.yaml,之后还会存放 GeoIP 数据库等运行时文件,所以要固定下来别乱挪。

sudo mkdir -p /etc/mihomo
sudo nano /etc/mihomo/config.yaml

配置内容可以直接使用订阅链接返回的 YAML——订阅本身就是一份完整配置,保存下来即可用;也可以自己从零编写。字段含义与最小可用示例见 mihomo 配置文件入门。写完先校验再启动,语法或字段有问题会直接报出行号:

mihomo -t -f /etc/mihomo/config.yaml

注意:服务器上的监听端口可能对外可达。如果这台机器有公网 IP,务必确认 external-controller 和混合端口只绑定在 127.0.0.1 或内网地址,并用防火墙限制来源,否则等于把代理入口敞开给所有人。

编写 systemd 服务单元

新建 /etc/systemd/system/mihomo.service,写入下面的内容:

[Unit]
Description=mihomo Daemon
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
Restart=always
RestartSec=5
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

几个关键项值得解释:AfterWants 指向 network-online.target,让内核等网络就绪后再启动,避免开机瞬间因解析失败而退出;Restart=always 搭配 RestartSec=5 实现崩溃后五秒自愈;LimitNOFILE 抬高文件描述符上限,连接数多时更稳。若还要在这台机器上启用 TUN,进程需要网络管理权限,可在 [Service] 段追加 AmbientCapabilities=CAP_NET_ADMIN

启动服务与查看日志

  1. 重新加载单元文件:sudo systemctl daemon-reload
  2. 设置开机自启并立即启动:sudo systemctl enable --now mihomo
  3. 查看运行状态:systemctl status mihomo,正常时显示 active (running)
  4. 实时跟踪日志:sudo journalctl -u mihomo -f

之后改了配置不必重装,sudo systemctl restart mihomo 即可生效。启动失败十有八九是配置问题,日志里通常会写清是哪一行、哪个字段——先读日志,再动手改。如果服务反复重启,systemctl status 里会看到不断累加的重启次数,这种情况说明内核每次都是起来就退,仍然是配置或端口占用的问题,把 Restart=always 临时改成 no 更容易看清完整的报错。

验证代理是否真的在工作

服务是 running 只说明进程活着,还得确认流量真从节点出去了。在本机用 curl 走本地端口测试(端口以配置里的 mixed-port 为准,常见为 7890 或 7897):

curl -x http://127.0.0.1:7890 -I https://www.example.com
curl -x socks5h://127.0.0.1:7890 -I https://www.example.com

能返回 HTTP 响应头就说明代理链路可用;两条都通,说明 HTTP 与 SOCKS5 入口都正常。如果 IP 直连没问题、按域名访问却超时,多半出在 DNS 段,排查方向见 mihomo DNS 配置详解

要让局域网里的其他设备也用上这台机器的代理,需要把配置中的 allow-lan 打开,并确认监听地址不是只绑在回环上,然后在其他设备的代理设置里填这台服务器的内网 IP 和端口。开放前记得先想清楚这台机器的网络边界在哪,别顺手把入口暴露到公网。

更新与回滚

升级 mihomo 就是替换一个二进制文件,配置和数据目录原样保留:

sudo systemctl stop mihomo
sudo cp /usr/local/bin/mihomo /usr/local/bin/mihomo.bak
gunzip mihomo-linux-amd64-*.gz
chmod +x mihomo-linux-amd64-*
sudo mv mihomo-linux-amd64-* /usr/local/bin/mihomo
sudo systemctl start mihomo

先备份旧版是个好习惯:万一新版本行为不合预期,把 mihomo.bak 改回 mihomo 再重启服务就完成回滚,整个过程不到一分钟。想在 Windows 上做同样的命令行部署,可以接着看 mihomo Windows 命令行部署教程