跳到正文
Petrichor's Blog
返回

Linux 服务器配置代理

阅读 ...

ig_02ecadc070924d96016a4b99b1c36881918c91ec6bf15112bf

目录

目录

简介

本教程记录在无头环境的linux中使用mihomo内核配置代理,方便进行科学上网,访问github获取内容,以及为反代等服务配置代理。 使用 mihomo 作为代理内核。mihomo 是 Clash 的衍生项目,支持 SS、SSR、V2Ray、Trojan、HTTP、Socks5 等多种代理协议,适合在 Linux 服务器、VPS 或无桌面环境中使用。

本文将完成以下内容:

  1. 下载并安装 mihomo;
  2. 配置订阅文件;
  3. 测试启动 mihomo;
  4. 配置 Web Dashboard;
  5. 使用 SSH 隧道安全访问 Dashboard;
  6. 使用 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,通常可能是以下原因:

这时可以先在本地浏览器确认订阅链接是否可用,再考虑手动下载后上传到服务器。


3. 测试启动 mihomo

配置文件准备好后,建议先检查配置是否正确:

mihomo -t -d ~/.config/mihomo

其中:

Warning

如果运行测试时卡在下面类似日志:

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 配置为:

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。

mihomo dashboard

如果你确实想通过域名访问 Dashboard,也可以使用 Nginx 反向代理。但需要注意:


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

这里建议指定 UserGroup,避免长期以 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 已经完成了基本安装和配置:

日常使用时,先建立 SSH 隧道:

ssh -L 9090:127.0.0.1:9090 用户名@服务器IP

然后在本地浏览器访问:

http://127.0.0.1:9090/ui

输入密钥后,就可以在浏览器中切换节点、查看连接和调整代理模式。


分享这篇文章:

上一篇
wsl启动报错ERROR_SHARING_VIOLATION问题修复
下一篇
WSL启用GPU硬件加速