Docker

使用 Docker 搭建图形化 Clash 服务端并添加订阅

前提条件当然是确保你成功安装了 Docker ,以及掌握了通过 Clash 来上网的方式

准备节点配置文件

首先,打开你的节点供应商网站,点击类似这样的按钮复制 Clash 的订阅链接

801d5ee6563c3014b3a6c3c145f2ccef.png

如果你的供应商不支持 Clash 订阅,那就不用看下去了

接着把订阅链接粘贴在浏览器地址栏中,回车,正常情况下会下载下来一个 .yaml 文件。用专业编辑器(例如 VSCode)打开它,内容大概是这样:

bfb7367a3bb725d59cab3233b0fbc3a1.png

确保 allow-lan 的值为 trueexternal-controller 的值为 0.0.0.0:9090,否则搭起来也连不上。最后将这个文件重命名为 config.yaml

部署 Clash 核心

Clash 有官方的Docker 部署教程,以及完整的配置项说明文档。有兴趣深入了解的可以看看,咱们简单粗暴点略过 docker-compose 直接上命令

docker run -d --name=clash -v "$PWD/config.yaml:/root/.config/clash/config.yaml" -p "7890:7890" -p "9090:9090" --restart=unless-stopped dreamacro/clash

回车,不出意外的话会出现一串16进制字符,此时 docker ps 可以看到我们刚才跑起来的 clash 核心

在下文中,我们假设 Docker 所在机器的 IP 为 192.168.0.5

部署图形化控制台

如果你有认真阅读 clash 的官方文档,你会发现其实 clash 核心自带一个图形化控制台。但是部署稍微麻烦一些,且不够美观强大。这里我们选择第三方的一个控制台 haishanh/yacd
有三种方案,选一个你喜欢的即可:

1、用现成的在线版控制台

http://yacd.haishan.me/

在后续使用中如果发现在线控制台打不开,请先检查是不是你的节点挂了

2、静态部署

git clone -b gh-pages https://github.com/haishanh/yacd.git

这是 yacd 作者编译好的版本,克隆下来之后用浏览器访问其中的 index.html 即可

3、自行 Docker 部署

docker run -p 1234:80 -d --rm --name yacd haishanh/yacd

回车,等待容器运行起来,然后访问 192.168.0.5:1234 即可

配置图形化控制台

7d2a6630ddfa5b32aa86b1899b4ffbfc.png

此处的 API Base URLhttp://192.168.0.5:9090。然后点击 Add 按钮

请注意
右边的那个 Secret(optional) 并非必填项,这是密码的意思。如果你的 config.yaml 内的 secret 为空,那么这里留空即可

然后下面就会出现一行 http://192.168.0.5:9090,点击它连接到 Clash 核心

接下来的操作对于用过 clash 的你来说应该就比较熟悉了

8fbdc5369c86ec84467fb17e391f0095.png

点击 Proxies(代理),展开节点列表,点击测速,选一个没有超时的节点即可

(可选)自动更新配置文件

已经有几个人来问怎么实现自动更新配置了,那我就详细介绍一下吧
创建一个 refresh.sh,跟上面提到的 config.yaml 放在一起。其内容如下:

# 下载节点配置文件
wget -O config.yaml https://你的clash订阅连接
# 有些供应商会把 external-controller 设为 127.0.0.1,导致很多人搭起来连不上。这里替换成 0.0.0.0
sed -i 's/127.0.0.1:9090/0.0.0.0:9090/g' config.yaml
# 重启 clash 容器
docker container restart clash
# 等待 5 秒,clash 服务启动需要一点时间
sleep 5
# 设置你常用的节点。其中 香港 03* 就是我常用节点的名称
curl -X PUT -H "Content-Type: application/json" -d '{"name": "香港 03*"}' "http://192.168.0.5:9090/proxies/PROXY"

有个细节需要注意,最后一步的链接里大写的部分,要替换成你供应商的节点分组名称,一般为 Proxy 或者 PROXY

c41f44412eaca17d8c4555c20c578a10.jpg

refresh.sh 保存好,通过 Linux 的 crontab 或者群晖的 任务计划 功能,每隔一段时间执行一下这个脚本即可实现自动更新

大功告成

整个部署过程到此结束,可以将 192.168.0.5:7890 设为代理地址尝试上网了。如果连不上,请先检查你的配置文件跟我的截图是否相同、检查防火墙设置等等
对于 zsh 用户,再次安利一波 zsh-proxy,实在是太方便了

49 条评论

点击这里取消回复。

昵称
  1. shadow

    我的clash莫名其妙多了一大堆陌生ip连接,下载速度一下子就上去了,想要设置一个连接密码怎么弄?

  2. 禽兽

    大佬你好 装完之后 手机全部都能用了 就是TG和WhatsApp用不了 这里贴不了图 看到TG和WhatsApp显示都是走的代理 但是就是连接不上 为啥呢 win是正常的 手机是ios

  3. xx

    大佬 我这边配置了clash之后端口配置不上去是什么情况

  4. ww

    楼主还在不 就是配置好config.yaml 具体是放在服务器哪个位置 你说运行命令是哪条命令呀?

  5. xiaoye

    大佬,我这边设置了规则模式,发现很多网址还是走的全局。设置界面是 Rule