【笔记】通过Docker部署Clash

前言

本篇只介绍通过Docker部署Clash,实现网络代理,不提供代理节点
本篇只介绍Clash核心的部署方法,如需使用操作可以尝试通过Docker部署Yacd
Clash也可以作为DNS服务器防止DNS污染
This is a general overview of the features that comes with Clash.(Github

准备一个Clash配置文件

  • 创建一个config.yaml配置文件

传送门

config.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
port: 7890
socks-port: 7891
redir-port: 7892
mixed-port: 7893
allow-lan: true
mode: global
log-level: info
external-controller: :9090
dns:
enable: true
ipv6: true
listen: 0.0.0.0:53
nameserver:
- 8.8.8.8
proxies:
- {name: 节点名称, server: 节点服务器域名或IP地址, port: 节点端口号, type: 节点代理类型, cipher: 节点密码加密方式, password: 节点密码, udp: true}

通过Docker部署

/root/Clash/config:存放Clash配置文件的目录
--ip=<ip>:设置IP地址,需要与桥接的网关在同一个网段

1
docker run -d --network=bridge --ip=<ip> --name clash --restart=always -v /root/Clash/config:/root/.config/clash/ dreamacro/clash

部署UI

  • 包含dashboard和yacd两款Clash的UI

下载项目

<ui>:存放ui目录的绝对路径

1
git clone https://github.com/Feiju12138/openwrt-cat-ui.git <ui>

通过Docker部署时携带ui路径

1
docker run -d -p 9090:9090 --name clash --restart=always -v /root/Clash/config:/root/.config/clash/ -v <ui>:/usr/share/openclash/ui dreamacro/clash

修改Clash配置

secret:如果配置了秘密,当使用WebUI来操作Clash时,需要提供秘密才能操作,如果不配置则此过程不需要提供秘密

config.yaml
1
2
3
external-controller: :9090
external-ui: "<ui>"
secret: "<secret>"

完成

参考文献

Youtube——Sagit
DockerHub——dreamacro/clash