
目录
目录
简介
本教程记录在无头环境的linux中使用mihomo内核配置代理,方便进行科学上网,访问github获取内容,以及为反代等服务配置代理。 使用 mihomo 作为代理内核。mihomo 是 Clash 的衍生项目,支持 SS、SSR、V2Ray、Trojan、HTTP、Socks5 等多种代理协议,适合在 Linux 服务器、VPS 或无桌面环境中使用。
本文将完成以下内容:
- 下载并安装 mihomo;
- 配置订阅文件;
- 测试启动 mihomo;
- 配置 Web Dashboard;
- 使用 SSH 隧道安全访问 Dashboard;
- 使用 systemd 将 mihomo 配置为后台服务。
1. 下载与安装
首先查看服务器 CPU 架构:
uname -m
大多数云服务器和 VPS 都是 x86_64 架构,对应 mihomo 的 linux-amd64 版本。
以下以 v1.19.27 为例:
cd /tmp
curl -L -O https://github.com/MetaCubeX/mihomo/releases/download/v1.19.27/mihomo-linux-amd64-v1.19.27.gz
如果你使用的是 ARM 服务器,例如部分轻量云、树莓派或 ARM VPS,需要到 mihomo Releases 页面 下载对应架构的版本,例如 linux-arm64。
解压并安装:
gzip -d mihomo-linux-amd64-v1.19.27.gz
sudo mv mihomo-linux-amd64-v1.19.27 /usr/local/bin/mihomo
sudo chmod +x /usr/local/bin/mihomo
检查是否安装成功:
mihomo -v
如果能正常输出版本号,说明安装完成。
2. 准备配置文件
mihomo 默认会读取配置目录中的 config.yaml 文件。这里我们将配置文件放在:
~/.config/mihomo/config.yaml
先创建配置目录:
mkdir -p ~/.config/mihomo
如果你已经有可用的 Clash / mihomo 配置文件,直接将其保存为:
~/.config/mihomo/config.yaml
如果你使用的是机场订阅链接,可以通过下面的方式下载:
curl -L -A "clash.meta" "你的订阅链接" -o ~/.config/mihomo/config.yaml
注意将 "你的订阅链接" 替换成自己的订阅地址,并保留引号,避免 URL 中的 &、? 等字符被 Shell 误解析。
如果下载失败,例如返回 403,通常可能是以下原因:
- 订阅链接已过期;
- 订阅链接复制不完整;
- 服务商限制了 User-Agent;
- 当前服务器网络无法访问订阅地址;
- 订阅地址需要在浏览器或客户端中重新生成。
这时可以先在本地浏览器确认订阅链接是否可用,再考虑手动下载后上传到服务器。
3. 测试启动 mihomo
配置文件准备好后,建议先检查配置是否正确:
mihomo -t -d ~/.config/mihomo
其中:
-t表示测试配置文件;-d ~/.config/mihomo表示指定 mihomo 的配置目录;- mihomo 会从该目录读取
config.yaml。
如果运行测试时卡在下面类似日志:
Can't find MMDB, start download
Can't find GeoSite.dat, start download说明 mihomo 正在尝试下载 GeoIP、GeoSite 等规则数据库。
如果服务器无法直接访问 GitHub,可能会一直卡在这里。不要一直等待,可以手动下载所需文件:
cd ~/.config/mihomo
curl -fL --retry 3 \
https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/country.mmdb \
-o country.mmdb
curl -fL --retry 3 \
https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.dat \
-o GeoIP.dat
curl -fL --retry 3 \
https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat \
-o GeoSite.dat下载完成后重新执行测试命令:
mihomo -t -d ~/.config/mihomo如果仍然提示缺少 Geo 数据库,可以根据日志中提示的文件名,检查当前目录中对应文件是否存在。
如果配置没有问题,会看到类似配置检查成功的输出。
测试通过后,可以手动启动 mihomo:
mihomo -d ~/.config/mihomo
此时 mihomo 会在当前终端前台运行。后续我们会使用 systemd 将它配置为后台服务。
4. 配置 Dashboard
只通过命令行使用 mihomo 不太方便,因此可以配置一个 Web Dashboard,用来切换节点、切换模式、查看连接信息。
这里使用 metacubexd。
先创建 UI 目录:
mkdir -p ~/.config/mihomo/ui
克隆 Dashboard 文件:
git clone -b gh-pages --depth=1 https://github.com/MetaCubeX/metacubexd.git ~/.config/mihomo/ui
以后如果需要更新 Dashboard,可以执行:
git -C ~/.config/mihomo/ui pull -r
5. 修改 mihomo 配置
编辑配置文件:
nano ~/.config/mihomo/config.yaml
在配置文件顶层加入以下高亮标记内容:
port: 7890
socks-port: 7891
redir-port: 7892
mixed-port: 7893
allow-lan: true
bind-address: '*'
mode: rule
log-level: warning
ipv6: false
find-process-mode: 'off'
external-controller: '127.0.0.1:9090'
secret: "换成一个足够长的随机密码"
external-ui: ~/.config/mihomo/ui
unified-delay: true
tcp-concurrent: true
global-client-fingerprint: chrome
keep-alive-idle: 600
keep-alive-interval: 15
disable-keep-alive: false
~/.config/mihomo/config.yaml
说明:
external-controller:Dashboard 和 API 的监听地址;127.0.0.1:9090:只允许服务器本机访问,避免直接暴露到公网;secret:访问 Dashboard 时需要输入的密钥;external-ui: ui:表示 Dashboard 文件位于配置目录下的ui文件夹。
不建议将 external-controller 配置为:
external-controller: 0.0.0.0:9090
这样会让控制接口直接暴露到公网。如果密钥泄露,别人就可能远程操作你的代理配置,存在安全风险。
修改完成后,再次测试配置:
mihomo -t -d ~/.config/mihomo
如果测试通过,就可以启动 mihomo:
mihomo -d ~/.config/mihomo
6. 访问 Dashboard
因为我们将 external-controller 绑定到了 127.0.0.1,所以不能直接通过服务器公网 IP 访问 Dashboard。
推荐使用 SSH 隧道从自己的电脑安全访问:
ssh -L 9090:127.0.0.1:9090 用户名@服务器IP
连接成功后,在本地浏览器访问:
http://127.0.0.1:9090/ui
然后输入前面配置的 secret,即可进入 Dashboard。

如果你确实想通过域名访问 Dashboard,也可以使用 Nginx 反向代理。但需要注意:
- 必须启用 HTTPS;
- 必须保留
secret; - 最好再加一层访问控制,例如 Basic Auth 或 IP 白名单;
- 不建议直接将控制接口无保护地暴露到公网。
7. 使用 systemd 后台运行
手动运行适合测试,但正式使用时更推荐创建 systemd 服务,让 mihomo 在后台运行,并支持开机自启。
先查看当前用户的家目录绝对路径:
echo $HOME
假设输出是:
/home/ubuntu
那么 mihomo 配置目录就是:
/home/ubuntu/.config/mihomo
创建 systemd 服务文件:
sudo nano /etc/systemd/system/mihomo.service
写入以下内容。
注意:请将 你的用户名 和 /home/你的用户名/.config/mihomo 替换为自己的实际用户名和实际路径。
[Unit]
Description=mihomo Daemon
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=你的用户名
Group=你的用户名
Restart=always
RestartSec=5
LimitNOFILE=1000000
ExecStart=/usr/local/bin/mihomo -d /home/你的用户名/.config/mihomo
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.targetetc/systemd/system/mihomo.service
这里建议指定 User 和 Group,避免长期以 root 用户运行 mihomo。
保存后重新加载 systemd:
sudo systemctl daemon-reload
设置开机自启:
sudo systemctl enable mihomo
立即启动:
sudo systemctl start mihomo
查看运行状态:
sudo systemctl status mihomo
如果需要查看运行日志,可以使用:
journalctl -u mihomo -e
实时查看日志:
journalctl -u mihomo -f
8. 常用管理命令
重启 mihomo:
sudo systemctl restart mihomo
停止 mihomo:
sudo systemctl stop mihomo
查看状态:
sudo systemctl status mihomo
查看日志:
journalctl -u mihomo -e
实时查看日志:
journalctl -u mihomo -f
重新检查配置:
mihomo -t -d ~/.config/mihomo
9. 总结
到这里,mihomo 已经完成了基本安装和配置:
- mihomo 内核安装到
/usr/local/bin/mihomo; - 配置文件位于
~/.config/mihomo/config.yaml; - Dashboard 位于
~/.config/mihomo/ui; - 控制接口监听在
127.0.0.1:9090; - 可以通过 SSH 隧道访问 Dashboard;
- 可以使用 systemd 实现后台运行和开机自启。
日常使用时,先建立 SSH 隧道:
ssh -L 9090:127.0.0.1:9090 用户名@服务器IP
然后在本地浏览器访问:
http://127.0.0.1:9090/ui
输入密钥后,就可以在浏览器中切换节点、查看连接和调整代理模式。