在非桌面 Linux 服务器上运行 Clash Meta (mihomo)

本文档详细说明如何在非桌面 Linux 服务器(如 Ubuntu、CentOS、Debian 等)上安装、设置、运行 Clash Meta(现更名为 mihomo),并实现后台运行、开机自启动,以及解决 curl: (5) Unsupported proxy syntax 错误。确保你有 root 或 sudo 权限,以及有效的代理订阅链接。

当前日期:2025 年 6 月 26 日


1. 安装 Clash Meta

1.1 确认系统架构

Clash Meta 需要与服务器 CPU 架构匹配的二进制文件。运行以下命令确认架构:

uname -m
  • 输出 x86_64 表示 amd64 架构。
  • 输出 aarch64 表示 arm64 架构。

    1.2 下载 Clash Meta 二进制文件

    访问 Clash Meta GitHub 发布页面,选择最新版本(如 v1.19.11)。
    下载适合架构的二进制文件(以 arm64 为例):

    wget https://github.com/MetaCubeX/mihomo/releases/download/v1.19.11/mihomo-linux-arm64-v1.19.11.gz

    解压文件:

    gunzip mihomo-linux-arm64-v1.19.11.gz

    重命名并赋予执行权限:

    mv mihomo-linux-arm64-v1.19.11 mihomo
    chmod +x mihomo

    移动到系统路径:

    sudo mv mihomo /usr/local/bin/

    1.3 创建工作目录

    创建 Clash Meta 配置文件目录:

    sudo mkdir -p /etc/mihomo

1.4 获取配置文件

从代理服务商获取 Clash 格式的订阅链接(YAML 格式)。

下载订阅到 /etc/mihomo/config.yaml:

sudo wget -O /etc/mihomo/config.yaml "你的订阅链接"

替换 "你的订阅链接" 为实际 URL。

或手动编辑配置文件:

sudo nano /etc/mihomo/config.yaml

粘贴订阅内容,保存并退出(Ctrl+O, Enter, Ctrl+X)。

验证配置文件:

mihomo -t -d /etc/mihomo/

大概应输出如下:
INFO[2025-06-27T15:13:11.556796117+08:00] Start initial configuration in progress
INFO[2025-06-27T15:13:11.587790873+08:00] Geodata Loader mode: memconservative
INFO[2025-06-27T15:13:11.587846539+08:00] Geosite Matcher implementation: succinct
WARN[2025-06-27T15:13:11.605932649+08:00] MMDB invalid, remove and download
INFO[2025-06-27T15:14:13.104286086+08:00] Initial configuration complete, total time: 61547ms
configuration file /etc/mihomo/config.yaml test is successful

2.2 配置 Web 控制面板(YACD)

创建 UI 目录:

sudo mkdir -p /etc/mihomo/ui

下载 YACD(注意:文件格式为 .tar.xz):

wget -O yacd.tar.xz https://github.com/haishanh/yacd/releases/download/v0.3.8/yacd.tar.xz

解压:

tar -xJf yacd.tar.xz -C /etc/mihomo/ui

在 config.yaml 中启用外部 UI:

external-controller: 0.0.0.0:9090
external-ui: /etc/mihomo/ui/public

开放 9090 端口(若启用防火墙):
···
sudo ufw allow 9090
sudo firewall-cmd --add-port=9090/tcp --permanent
sudo firewall-cmd --reload
···

3. 运行 Clash Meta

3.1 测试运行

运行以下命令测试:

mihomo -d /etc/mihomo/

输出日志后,按 Ctrl+C 停止。

3.2 设置系统代理

编辑 /etc/environment:

sudo nano /etc/environment

添加以下内容:

http_proxy=http://127.0.0.1:7890
https_proxy=http://127.0.0.1:7890
ftp_proxy=http://127.0.0.1:7890
HTTP_PROXY=http://127.0.0.1:7890
HTTPS_PROXY=http://127.0.0.1:7890
FTP_PROXY=http://127.0.0.1:7890
no_proxy=localhost,127.0.0.1,::1

保存并应用:

source /etc/environment

或:

export $(cat /etc/environment | grep -v '^#' | xargs)

4. 后台运行 Clash Meta(使用 Systemd)

创建服务文件:

sudo nano /etc/systemd/system/mihomo.service

添加内容:

[Unit]
Description=Clash Meta, a rule-based proxy
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo/
Restart=on-failure
StandardOutput=append:/var/log/mihomo/log.log
StandardError=append:/var/log/mihomo/error.log

[Install]
WantedBy=multi-user.target

创建日志目录:

sudo mkdir -p /var/log/mihomo

重新加载并启动服务:

sudo systemctl daemon-reload
sudo systemctl start mihomo

检查状态:

sudo systemctl status mihomo

验证代理:

curl https://www.google.com

5.设置开机自启动

启用服务:

sudo systemctl enable mihomo

验证重启后是否运行:

sudo reboot
sudo systemctl status mihomo

6.Web 面板yacd 的使用

6.1 本地同一网络下的使用

在浏览器打开如下地址,请用实际部署的ip替换

http://192.168.101.7:9090/ui/

显示如下
截屏2025-07-01 11.32.44.png
请如下填写
截屏2025-07-01 11.39.10.png
然后,按 Add 按钮,把这个地址加进来
截屏2025-07-01 11.41.13.png
选中刚加来的地址,显示如下
截屏2025-07-01 11.42.24.png
截屏2025-07-01 11.42.44.png
这样就完成了,如果有问题,请想办法解决

6.2 用cloudflare 隧道把192.168.101.7:9090 穿透出去

大概如下图所示:
截屏2025-07-01 11.48.31.png
在浏览器地址栏,输入:

https://clashmeta.szainp.com/ui/

然后必须按下面输入地址

https://clashmeta.szainp.com

截屏2025-07-01 11.52.34.png

6.3 用frp 客户端

大概这样在frpc.toml 里增加大致如下内容

# HTTP 代理配置
[[proxies]]
name = "http-service"
type = "http"
localIP = "127.0.0.1"
localPort = 9090
subdomain = "clashmeta"

并在dns做相关的解析
其他注意这个是http, 大致如下:
截屏2025-07-01 11.59.19.png
截屏2025-07-01 12.01.15.png