使用mihomo内核配置服务器代理
mihomo(原 Clash.Meta)是一个基于 Go 语言开发的跨平台代理内核,是 Clash 开源项目的一个分支/增强版本。它继承了 Clash 的核心能力,同时引入了大量优化和新特性,是目前最活跃、功能最完善的代理内核之一。
我们日常使用的 ClashMac、Clash Verge 面板,其内核实际就是mihomo。两者的关系类似于web软件前端界面与后端服务的架构关系。
| 角色 | 对应组件 | 以 Web 应用为例 |
|---|---|---|
| 后端 | mihomo 内核 | Web 服务器(如 Nginx)——负责处理请求、路由、核心逻辑。 |
| 前端 | Clash Verge / ClashX Meta / Flora 等 GUI 软件 | 浏览器或移动端 App——负责展示界面、接收用户操作、通过 API 与后端交互。 |

Clash Verge 面板示意

ClashMAC 面板示意图
在win或者macbook上,我们有上述两个优秀GUI软件作为科学上网软件,但是在linux服务器上,只有空空的黑窗口,如何配置科学上网环境呢?
本文将介绍一种方法:配置mihomo内核,其接管系统网络,实现clash verge上类似的体验。
总览
mihomo 内核的github官方地址:https://github.com/MetaCubeX/mihomo

点进来别被作者的Readme介绍文档虚晃一枪哈,由于懂得都懂的原因,作者没有直接写出项目的作用,我们直接点击Releases链接。

在Releases 页面可以看到琳琅满版的发行版本,==针对Linux服务器,一般而言,intel CPU下载后缀为 amd64 版本,arm架构CPU下载 arm64 版本== 。
debain 系类系统下载deb后缀,其他系统请自行搜索

安装
命令行安装
如果下述命令行从github下载超时,推荐自己手动从github页面下载,通过scmp / ssh 服务上传到服务器上。嗯,这是一个鸡生蛋,蛋生鸡问题~
依次执行下述指令:
# 创建工作目录
sudo mkdir -p /etc/mihomo
sudo mkdir -p /var/log/mihomo
# 下载(此处以 amd64 v1.18.9 为例,请自行替换为最新版本)
wget https://github.com/MetaCubeX/mihomo/releases/download/v1.19.25/mihomo-linux-amd64-v1.19.25.gz
# 解压并移动到系统 path
gzip -d mihomo-linux-amd64-v1.19.25.gz
sudo mv mihomo-linux-amd64-v1.19.25 /usr/local/bin/mihomo
sudo chmod +x /usr/local/bin/mihomo
验证安装
mihomo -v

创建配置文件
Mihomo 默认的配置目录通常为 /etc/mihomo。你需要将你的订阅文件或配置文件命名为 config.yaml 放入该目录。
此处 config.yaml 推荐你复制本地win或者mac的clash verge 或 clash for window 的配置文件,直接复制到远程服务器上,避免又遇到上面“鸡生蛋,蛋生鸡”问题~

将下面这个本地配置文件复制到服务器 /etc/mihomo/,并重命名为config.yaml

# 创建配置文件
sudo vim /etc/mihomo/config.yaml
# vim 模式,输入i进入编辑模式,将本地配置粘贴进此文件
# 按 ESC 退出编辑模式,输入 :wq 保存退出
后台运行 (systemd 服务)
为了让 Mihomo 在后台稳定运行并开机自启,我们需要为其编写一个 Systemd 服务。
创建服务文件
sudo vim /etc/systemd/system/mihomo.service
写入以下内容
[Unit]
Description=Mihomo Daemon, A rule-based tunnel in Go.
After=network.target network-online.target nss-lookup.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
启动并启用服务
# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 启动 mihomo
sudo systemctl start mihomo
# 设置开机自启
sudo systemctl enable mihomo
# 检查运行状态
sudo systemctl status mihomo

目前我们已经配置完成了mihomo 服务,并且其在后台常驻。mihomo 默认监听 7890 端口(依据配置文件而定,不是固定端口),例如我的配置文件如下,其mixed-port 端口为7893
port: 7890
socks-port: 7891
redir-port: 7892
mixed-port: 7893
allow-lan: false
unified-delay: true
mode: rule
log-level: info
ipv6: false
接下来是设置系统的http 和 https 服务 走 7893端口代理,并且可以灵活切换代理的开关.
在终端中执行以下命令
vim ~/.bashrc
# 在末尾追加如下脚本
function proxy_on(){
export all_proxy=socks5://127.0.0.1:7893
export http_proxy=http://127.0.0.1:7893
export https_proxy=http://127.0.0.1:7893
echo -e "已开启代理"
}
function proxy_off(){
unset all_proxy
unset http_proxy
unset https_proxy
echo -e "已关闭代理"
}
重新加载bash的配置文件
source ~/.bashrc
追加的脚本的含义是:在终端输入 proxy_on 开启代理,输入 proxy_off 关闭代理。
下面我们测试一波
# 开启代理
proxy_on
# 测试谷歌连接性
curl -I https://www.google.com

更新订阅:如果你需要更新节点,可以直接用
wget或curl下载新的 yaml 文件覆盖/etc/mihomo/config.yaml,然后执行sudo systemctl restart mihomo。
现在服务器可以正常下载github、docker、huggingface等服务了。
欢迎来到开源的世界,向各位开源作者致敬🫡!