Docker内部署Clash代理服务

Docker内部署Clash代理,一是可以对外提供服务,二是不用运行图形化的客户端,而这种客户端通常需要跑在实体机或虚拟机上。在Docker内运行能大大节省资源,可谓非常方便。

需要用到两个Docker镜像,dreamacro/clashhaishanh/yacd,前者是Clash核心,后者是用于管理Clash配置的Web UI。

首先准备一个可用的Clash的配置文件,可以在Clash的Profiles找到要用的配置,右键,选择Show In Folder,会自动打开该配置所在的文件夹并选中,把它复制出来,并改名为config.yaml,注意原格式是yml,需要改为yaml

修改上面的配置文件,修改或添加以下两条

# 允许来自局域网的连接 
allow-lan: true
# 外部控制器的监听地址,0.0.0.0 表示监听所有网络接口 
external-controller: '0.0.0.0:9090'

创建Docker容器1

docker run -d --name clash-core --restart=always -p 7890:7890/tcp -p 7891:7891/tcp  -p 9090:9090/tcp  -v /path/to/clash/data:/root/.config/clash dreamacro/clash

这里我挂载了一个目录/path/to/clash/data,上面的配置文件要放到这个目录下。另外还需要下载一个Country.mmdb,需自行搜索下载,不然Docker容器会一直重启,通过日志可以看到需要下载这么个文件而一直不成功。

创建Docker容器2

docker run -d  --name clash-yacd-ui  --restart=always  -p 9091:80  haishanh/yacd

两个容器都正常运行后,就可以通过 http://127.0.0.1:9091管理Clash了。

Leave a Comment

豫ICP备19001387号-1