clash部署
clash是干什么的懂得都懂,这里仅是介绍下如何在不同平台不同场景下部署相关工具.
本地部署
最常见的用法就是直接在对应的操作系统上安装对应的gui软件.最知名的应该是就是Clash_for_Windows了,但很遗憾这个项目在一次围剿中牺牲了,版本永远停留在了0.20.39
,上面的项目地址实际上只是一个墓碑,后续也不会有更了和维护了.
现在更加推荐的是clashverge.这个项目目前还有维护,但需要注意他们最近做了一次大版本升级,v2.0至少在linux(ubuntu)下有严重bug无法使用,推荐使用v1版本
Linux(Debian系)下的安装
在Debian系下安装前我们需要预先安装一些依赖
先根据自己机器的指令集下载对应安装包,之后使用apt安装
-
amd64
sudo apt install ./libwebkit2gtk-4.0-37_2.43.3-1_amd64.deb ./libjavascriptcoregtk-4.0-18_2.43.3-1_amd64.deb
-
arm64
sudo apt install ./libwebkit2gtk-4.0-37_2.43.3-1_arm64.deb ./libjavascriptcoregtk-4.0-18_2.43.3-1_arm64.deb
作为服务部署
作为服务器部署我们可以借助docker,它主要靠如下两个镜像
- dreamacro/clash,一般使用v1.18.0版本,clash的核心服务,代理客户端可以用这个
7890
端口来作为代理服务器 - haishanh/yacd,一般使用v0.3.8版本,这是个clash的控制页面,需要在进入时指定clash后端.
这两个镜像都有amd64和arm64版本.
部署的compose可以像下面这样
version: '2.4'
services:
clash:
image: dreamacro/clash:v1.18.0
volumes:
- /你的配置文件所在目录/config.yaml:/root/.config/clash/config.yaml
network_mode: "host"
ui:
image: haishanh/yacd:v0.3.8
environment:
YACD_DEFAULT_BACKEND: http://部署机器的ip:9090
ports:
- "9080:80"
depends_on:
- clash
我们需要在部署前先给clash写好配置.配置文件可以使用下面的模版
mixed-port: 7890 # 混合端口,这样代理协议就都用这个端口了
redir-port: 7892 # linux和mac的redir
allow-lan: true #允许局域网连接
mode: Rule # 模式 Rule, Global, Direct
log-level: silent # 日志级别 silent, info, warning, error, debug
external-controller: "0.0.0.0:9090" # RESTfull接口路径
secret: '' # api秘钥,内网一般就为''
# 下面是代理信息
...
其中代理信息可以在本地客户端的Profiles
中通过编辑获取(也就是secret
后面的部分)
这样进入http://部署机器的ip:9080
这个地址后默认的后端就是我们部署的clash服务了.点击就可以对clash进行调整了.
这种部署方案的缺点是如果我们的代理信息是由url动态更新的,我们就需要额外弄个定时任务获取定时手动去刷新这些代理信息.