在非桌面 Linux 服务器上运行 Clash Meta (mihomo)
在非桌面 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/
显示如下
请如下填写
然后,按 Add 按钮,把这个地址加进来
选中刚加来的地址,显示如下
这样就完成了,如果有问题,请想办法解决
6.2 用cloudflare 隧道把192.168.101.7:9090 穿透出去
大概如下图所示:
在浏览器地址栏,输入:
https://clashmeta.szainp.com/ui/
然后必须按下面输入地址
https://clashmeta.szainp.com
6.3 用frp 客户端
大概这样在frpc.toml 里增加大致如下内容
# HTTP 代理配置
[[proxies]]
name = "http-service"
type = "http"
localIP = "127.0.0.1"
localPort = 9090
subdomain = "clashmeta"
并在dns做相关的解析
其他注意这个是http, 大致如下: