说明
在群晖上有某些应用或者容器有科学上网的需求,之前偶尔用的时候是有局域网其他机器开clash,然后开局域网共享,但是这种模式不适合用来解决长期需求
于是直接在docker中部署一个专门用来科学上网的容器。
看网络教程很多推荐使用 dreamacro/clash + haishanh/yacd 来做解决方案,秉承能用一个不用两个的原则,另外找到了现在这个自带 dashboard控制面板的镜像:clash-with-dashboard
拉取镜像
注册表中搜索 clash-with-dashboard ,点击下载。
或者
docker pull zyao89/clash-with-dashboard:latest
准备工作
自行准备好科学上网的配置文件,这个由机场提供,复制clash订阅地址到浏览器打开即可下载到。
打开配置文件确认其中如下基础配置参数完整。
#http代理端口 port: 7890 #socks5代理端口 socks-port: 7891 #允许局域网转发 allow-lan: true mode: Rule #日志登记 log-level: info #外部控制面板设置端口 external-controller: ':9090'
或者
#http和socks5混合端口 mixed-port: 7890 allow-lan: true mode: Rule log-level: info external-controller: ':9090'
将配置文件更名为config 上传到对应文件夹。
部署容器
docker run -d \ --name clash-dashboard \ -p 8888:80 \ -p 7890:7890 \ -p 7891:7891 \ -p 9090:9090 \ -v /volume1/docker/clash/config.yaml:/root/.config/clash/config.yaml \ zyao89/clash-with-dashboard
或者使用
docker-compose.ymlversion: "3" services: clash: container_name: clash image: zyao89/clash-with-dashboard restart: always ports: - "7890:7890" - "7891:7891" - "8888:80" - "9090:9090" volumes: - /volume1/docker/clash/config.yaml:/root/.config/clash/config.yaml
参数说明
- 对应端口转发,其中
7890和7891为http和socks5代理端口,80为web ui端口,9090为外部设置端口。
/root/.config/clash/config.yaml为容器内配置文件路径。需要将你自己的配置文件映射为此路径。
使用方式
容器部署成功之后,在局域网打开
http://<ip>:8888 ,就可以看到外部控制界面。填写对应的路径和端口号就可以开始设置。
此处应该填写宿主机(比如群晖)的局域网ip,以及映射的端口号比如
9090 。注意调整代理策略组,设置对应的代理策略选择。
其他需要使用科学上网的可以通过http或socks5进行代理。