Ubuntu 无 Root 安装 Clash (Mihomo) + Yacd 控制面板 完整指南
📦 一、准备工作
- 操作系统:Ubuntu Server 20.04 x64
- 无 root 权限(使用普通用户)
- 已能通过 SSH 连接
创建工作目录:
mkdir -p ~/clash
cd ~/clash
🧩 二、下载并安装 Mihomo (Clash 核心)
1. 下载核心程序
wget https://github.com/MetaCubeX/mihomo/releases/download/v1.19.15/mihomo-linux-amd64-v1.19.15.gz
gzip -d mihomo-linux-amd64-v1.19.15.gz
mv mihomo-linux-amd64-v1.19.15 clash
chmod +x clash
2. 验证是否可执行
./clash -v
出现版本号即安装成功。
⚙️ 三、导入订阅配置
在本地 Clash Verge 中复制你的订阅链接,然后在服务器执行:
cd ~/clash
curl -L "你的订阅链接" -o config.yaml
验证配置文件:
head -n 10 config.yaml
🌐 四、修改配置文件 (config.yaml)
使用编辑器(如 nano 或 vim)打开:
nano ~/clash/config.yaml
确保包含以下关键配置(可直接复制到文件开头):
port: 7890
socks-port: 7891
allow-lan: true
# 控制面板端口
external-controller: 0.0.0.0:9090
secret: "yourStrongPassword"
# 挂载 UI 文件目录(见后续)
external-ui: ./ui/public
# 启动默认分组(示例)
mode: Rule
log-level: info
保存后退出。
🌍 五、安装 Yacd 面板
1. 下载最新版本
cd ~/clash
mkdir -p ui
wget https://github.com/haishanh/yacd/releases/latest/download/yacd.tar.xz
tar -xf yacd.tar.xz -C ui
解压完成后,确保结构如下:
~/clash/ui/public/index.html
🔑 六、下载 Country.mmdb 地理数据库
(用于显示国旗、GEOIP 规则)
cd ~/clash
wget -O Country.mmdb https://github.com/MetaCubeX/meta-rules-dat/releases/latest/download/Country.mmdb
🚀 七、启动 Clash 核心
cd ~/clash
nohup ./clash -d . > clash.log 2>&1 &
查看运行状态:
tail -f clash.log
出现类似:
RESTful API listening at: 0.0.0.0:9090
Serving UI: /home/ubuntu/clash/ui/public
MMDB loaded
即运行成功 ✅
🧠 八、访问 Yacd 控制面板
方法 1:SSH 本地转发(推荐)
在你本地电脑的 ~/.ssh/config 中添加:
Host my-server
HostName <你的服务器IP>
User <用户名>
LocalForward 9090 127.0.0.1:9090
重新连接:
ssh my-server
然后在浏览器打开:
http://localhost:9090/ui
首次进入若提示连接 API:
- URL:
http://127.0.0.1:9090 - Secret:
yourStrongPassword
连接成功后,就能可视化切换节点、查看日志、测试延迟。
🧰 九、设置环境变量(让远程系统走代理)
临时设置(当前会话有效):
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
测试:
curl -I https://api.openai.com/v1/models
若返回 200 OK → 代理成功。
永久生效(写入 bashrc):
echo 'export http_proxy=http://127.0.0.1:7890' >> ~/.bashrc
echo 'export https_proxy=http://127.0.0.1:7890' >> ~/.bashrc
source ~/.bashrc
🧾 十、后台管理与自检
查看进程:
ps aux | grep clash
停止进程:
pkill clash
查看端口监听:
ss -lntp | grep -E '7890|7891|9090'
查看日志:
tail -n 50 clash.log
✅ 十一、快速诊断脚本(可选)
cat > ~/clash/diag.sh <<'SH'
#!/usr/bin/env bash
set -e
echo "== Clash 进程 =="
pgrep -a clash || echo "未发现 clash 进程"
echo "== 端口监听 =="
ss -lntp | grep -E '7890|7891|9090' || echo "未监听 7890/7891/9090"
echo "== 测试代理连通性 =="
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
curl -m 8 -sS -I https://api.openai.com/v1/models || echo "请求失败(可能节点不可用)"
echo "== 当前出口 IP =="
curl -m 8 -sS ipinfo.io || echo "无法获取出口 IP"
SH
chmod +x ~/clash/diag.sh
bash ~/clash/diag.sh
🎉 十二、完成!
现在你可以:
- 在浏览器访问
http://localhost:9090/ui使用图形界面; - 在远程终端通过代理访问外网;
- 让 VS Code Remote-SSH、命令行、curl 等请求全部走代理。