使用clash替换ssr作为服务器代理的解决方案
前言
昨天一直在使用的ssr命令行工具在解析机场订阅地址时出了问题,根据报错位置看了下原作者的代码发现是base64解析出了问题,把代码扒下来改了改还是报错,问AI问半天最后也没解决。考虑到ss已经是很久以前的协议了,配套的代理方案都比较老,目前很多机场都转向clash、v2ray等解决方案,并且也都不太支持提供ss协议的订阅地址,所以还是下决心更换使用clash。本次使用的是MeteCubeX的mihomo核心以及配套的可视化UI工具metacubexd。这个UI可以直接使用MeteCubeX官方部署的网页端,无需本地部署,输入服务器地址、端口和secret即可。当然,如果想要公网访问,服务器域名未部署ssl证书的还需进一步配置,下面将详细展开。
配置相关
- 系统:CentOS 7.9 64位,2 核(vCPU)2 GiB
- 工具:mihomo-linux-arm64-v1.19.16.gz
安装clash客户端
在mihomo的release页面找到最新版本的mihomo核心,并使用wget命令下载(记得带代理)
wget -e use_proxy=yes -e http_proxy=http://127.0.0.1:1080 |
解压文件,将文件复制到/usr/bin/目录下,并增加可执行权限
gunzip mihomo-linux-arm64-v1.19.16.gz |
cd到/usr/bin目录下,执行一次命令进行自动初始化,在~/.config/mihomo/目录下生成config.yaml文件后ctrl+c停止
sudo clash |
cd到~/.config/mihomo/目录,使用xftp或者其他的传输工具,把config.yaml替换成所用机场的订阅文件yaml,详细参配可以在mihomo官方文档里找到,注意以下配置
#混合端口,这里因为我是从ssr迁移过来,习惯1080端口,所以默认设置1080 |
为了clash能更好进行地址规则分流,还需要一个Country.mmdb文件,可在maxmind-geoip中获取,文件同样放置在config.yaml同一目录
wget -e use_proxy=yes -e http_proxy=http://127.0.0.1:1080 |
此时已经完成clash(mihomo版)的配置安装,回到/usr/bin目录下nohup后台执行,使用以下命令即可看见clash监听对应端口号的进程已经存在
sudo netstat -tulnp |
将clash部署为服务
在/etc下新建clash目录,cd到~/.config/mihomo中将第一步的config.yaml和Country.mmdb移到/etc/clash目录下
sudo mkdir /etc/clash |
在/etc/systemd/system目录下新建一个clash.service文件,填入以下内容,跑二进制/usr/bin/clash锚定/etc/clash中的配置文件进行启动
[Unit] |
使用systemctl命令启动clash服务并查看状态
sudo systemctl enable clash |
配合前端UI选择节点
mihomo可用的前端UI有很多,这里采用官方的metacubexd,官方提供了两个部署链接,GH Pages和Cloudflare Pages,随便选一个填入ip、端口、密钥访问即可。如果域名未配置ssl证书,则会因为有跨域问题登录不上,这时需要在浏览器对该网站设置允许不安全内容



服务器输入命令访问谷歌检验效果
curl --proxy socks5h://127.0.0.1:1080 google.com |




