前提条件当然是确保你成功安装了 Docker ,以及掌握了通过 Clash 来科学上网的方式
准备订阅文件
首先,打开你的科学上网供应商网站,点击类似这样的按钮复制 Clash 的订阅链接
(如果你的供应商不支持 Clash 订阅,那就不用看下去了)
接着把订阅链接粘贴在浏览器地址栏中,回车,正常情况下会下载下来一个 .yaml
文件。内容大概是这样:
将其重命名为 config.yaml
,用专业编辑器打开它,确保 allow-lan
的值为 true
,否则搭起来也连不上
部署 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
注意,这条命令中的端口号要根据你自身情况来。打开你的
config.yaml
,查看其中port
、socks-port
、redir-port
、mixed-port
、external-controller
的值,根据你的实际需要来暴露相应的端口。如果你不知道这些英文是什么意思,请查看上面提到过的配置项说明文档
一般来说,只需要暴露mixed-port
、external-controller
这两个端口就够了。如果你的配置文件中没有mixed-port
,那么可以将port
改为mixed-port
,这样方便一些,省的区分 http 和 socks
回车,不出意外的话会出现一串16进制字符,此时 docker ps
可以看到我们刚才跑起来的 clash 核心
部署图形化控制台
如果你有认真阅读 clash 的官方文档,你会发现其实 clash 核心自带一个图形化控制台。但是部署稍微麻烦一些,且不够美观强大。这里我们选择第三方的一个控制台 haishanh/yacd
有三种方案,选一个你喜欢的即可:
1、用现成的在线版控制台
2、静态部署
git clone -b gh-pages https://github.com/haishanh/yacd.git
,用浏览器访问其中的 index.html
。这是 yacd 作者编译好的版本
3、自行 Docker 部署
docker run -p 1234:80 -d --rm --name yacd haishanh/yacd
回车把控制台跑起来
假设 docker 所在机器的 ip 为 192.168.0.5
,那么我们就访问 192.168.0.5:1234
,可以看到如下登录界面
根据你的实际情况填写 ip 和 端口号(即配置文件中 external-controller
内的端口号),点击 Confirm
接下来的操作对于用过 clash 的你来说应该就比较熟悉了
点击 Proxies
,展开节点列表,点击测速,选一个没有超时的节点即可
大功告成
整个部署过程到此结束,可以将 192.168.0.5:7890
设为代理地址尝试科学上网了。如果连不上,请先检查防火墙设置等等
对于 zsh 用户,再次安利一波 zsh-proxy,实在是太方便了
确定配置文件和上图一样,hostname是docker所在机器的ip
这就很奇怪了,我也不知是什么原因。safari 浏览器?
chrome
博主,尝试了多种方法无法定位到原因,方便加下QQ吗?3061127 谢谢
博主,方便加下你的Telegram 吗?
关于页面有哈,不过这会儿在加班暂时没空
通过浏览器访问目的地址返回如下内容 “hello”: “clash”,求博主答疑,谢谢
我也遇到了同样的问题,配完hostname后提示Failed to connect 求答疑,谢谢
先确定 clash 配置文件是否跟我图上一样;再确定你填的 hostname 是否为 docker 所在机器的 ip
为什么图形界面老是显示127.0.0.1:9090
我在群晖上设置的
我用电脑浏览器访问的图形界面
显示在哪里?无法修改么?