clash部署

Posted by Hsz on November 29, 2024

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,它主要靠如下两个镜像

这两个镜像都有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动态更新的,我们就需要额外弄个定时任务获取定时手动去刷新这些代理信息.