前言

昨天一直在使用的ssr命令行工具在解析机场订阅地址时出了问题,根据报错位置看了下原作者的代码发现是base64解析出了问题,把代码扒下来改了改还是报错,问AI问半天最后也没解决。考虑到ss已经是很久以前的协议了,配套的代理方案都比较老,目前很多机场都转向clashv2ray等解决方案,并且也都不太支持提供ss协议的订阅地址,所以还是下决心更换使用clash。本次使用的是MeteCubeXmihomo核心以及配套的可视化UI工具metacubexd。这个UI可以直接使用MeteCubeX官方部署的网页端,无需本地部署,输入服务器地址、端口和secret即可。当然,如果想要公网访问,服务器域名未部署ssl证书的还需进一步配置,下面将详细展开。

配置相关

安装clash客户端

在mihomo的release页面找到最新版本的mihomo核心,并使用wget命令下载(记得带代理)

wget -e use_proxy=yes -e http_proxy=http://127.0.0.1:1080 
https://github.com/MetaCubeX/mihomo/releases/download/v1.19.16/mihomo-linux-arm64-v1.19.16.gz

解压文件,将文件复制到/usr/bin/目录下,并增加可执行权限

gunzip mihomo-linux-arm64-v1.19.16.gz
sudo mv mihomo-linux-arm64-v1.19.16 /usr/bin/clash
sudo chmod +x /usr/bin/clash

cd到/usr/bin目录下,执行一次命令进行自动初始化,在~/.config/mihomo/目录下生成config.yaml文件后ctrl+c停止

sudo clash

cd到~/.config/mihomo/目录,使用xftp或者其他的传输工具,把config.yaml替换成所用机场的订阅文件yaml,详细参配可以在mihomo官方文档里找到,注意以下配置

#混合端口,这里因为我是从ssr迁移过来,习惯1080端口,所以默认设置1080
mixed-port: 1080
#http端口
port: 7890
#socks5端口
socks-port: 7891
#true允许局域网连接
allow-lan: true
#可选项有rule,global,direct等模式,分别对应规则,全局,直连
mode: Rule
#允许外部进行API访问的设置(默认监听端口为9090,需预先在服务器防火墙打开端口),如使用metecubexd访问
#若是仅允许局域网则ip段设置为127.0.0.1,若有公网访问需求则设置0.0.0.0
external-controller: '0.0.0.0:9090'
#用于访问可视化UI的密钥,随便生成一个uuid或者编一个,自己保存好
secret: 'xxxxx'

为了clash能更好进行地址规则分流,还需要一个Country.mmdb文件,可在maxmind-geoip中获取,文件同样放置在config.yaml同一目录

wget -e use_proxy=yes -e http_proxy=http://127.0.0.1:1080 
https://github.com/Dreamacro/maxmind-geoip/releases/download/20251112/Country.mmdb

此时已经完成clash(mihomo版)的配置安装,回到/usr/bin目录下nohup后台执行,使用以下命令即可看见clash监听对应端口号的进程已经存在

sudo netstat -tulnp

将clash部署为服务

/etc下新建clash目录,cd到~/.config/mihomo中将第一步的config.yamlCountry.mmdb移到/etc/clash目录下

sudo mkdir /etc/clash
cd ~/.config/mihomo
sudo cp config.yaml /etc/clash/.
sudo cp Country.mmdb /etc/clash/.

/etc/systemd/system目录下新建一个clash.service文件,填入以下内容,跑二进制/usr/bin/clash锚定/etc/clash中的配置文件进行启动

[Unit]
Description=Clash client, A proxy tool from Mihomo.
After=network.target

[Service]
Type=simple
Restart=always
ExecStart=/usr/bin/clash -d /etc/clash

[Install]
WantedBy=multi-user.target

使用systemctl命令启动clash服务并查看状态

sudo systemctl enable clash
sudo systemctl start clash
sudu systemctl status clash

配合前端UI选择节点

mihomo可用的前端UI有很多,这里采用官方的metacubexd,官方提供了两个部署链接,GH PagesCloudflare Pages,随便选一个填入ip端口密钥访问即可。如果域名未配置ssl证书,则会因为有跨域问题登录不上,这时需要在浏览器对该网站设置允许不安全内容
Chrome设置示例
登录页面
仪表盘页面
代理节点选择页面

服务器输入命令访问谷歌检验效果

curl --proxy socks5h://127.0.0.1:1080 google.com

参考资料