Clash+Yacd docker配置

代理服务器设置

仅供自我研究docker 参考使用 请勿传播

安装

首先是配置文件获取脚本

1
vim clash.sh

修改下方文件中的文件中的你的订阅地址 如果https出现问题请使用带有--no-check-certificate的进行获取文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/bash

# 下载配置文件
wget -O $PWD/config.yaml "https://<你的订阅地址>&flag=clash"
# wget -O $PWD/config.yaml "http://&flag=clash" --no-check-certificate

# 检查下载是否成功
if [ $? -eq 0 ]; then
# 更新配置文件,允许局域网连接
sed -i 's/allow-lan: false/allow-lan: true/g' $PWD/config.yaml
sed -i "s/external-controller: '127.0.0.1:9090'/external-controller: '0.0.0.0:9090'/g" "$PWD/config.yaml"
echo "配置文件已成功下载并更新。"

echo "✅ external-controller 地址已修改为 0.0.0.0:9090"
# 检查是否存在名为 'clash' 的容器
if [ $(docker ps -q -f name=clash) ]; then
# 停止容器
echo "正在停止 clash 容器..."
docker stop clash
# 启动容器
echo "正在启动 clash 容器..."
docker start clash
echo "Clash Docker 容器已成功重启。"
else
echo "未找到 clash 容器。"
fi
else
echo "配置文件下载失败。"
fi

# 获取当前脚本的绝对路径
SCRIPT_PATH="$(realpath "$0")"

# 定义定时任务内容
CRON_JOB="0 4 * * * /bin/bash $SCRIPT_PATH > /dev/null 2>&1"

# 检查是否已存在该定时任务
(crontab -l 2>/dev/null | grep -F "$SCRIPT_PATH") && echo "定时任务已存在" && exit 0

# 添加定时任务
(crontab -l 2>/dev/null; echo "$CRON_JOB") | crontab -


echo "定时任务已添加,每天凌晨 4 点执行 $SCRIPT_PATH"

增加执行权限chmod +x clash.sh

然后首先运行一次./clash.sh​ 先在该文件夹获取到config.yaml​配置文件

可以使用crontab -l​查看定时任务设置完成

然后在当前路径配置docker-compose.yml​文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
version: '3.8'

services:
clash:
image: dreamacro/clash
container_name: clash
volumes:
- "$PWD/config.yaml:/root/.config/clash/config.yaml"
ports:
- "7890:7890" # HTTP 代理端口
- "7891:7891" # SOCKS5 代理端口
- "9090:9090" # Clash API 端口
restart: unless-stopped

yacd:
image: haishanh/yacd
container_name: yacd
ports:
- "8888:80" # 修改 Yacd Web UI 端口,避免与 Clash 冲突
restart: unless-stopped

然后在浏览器键入https://服务器地址:8888​进入yacd 然后在api Base URL​中输入 http://服务器地址:9090​ Clash API 端口 然后点击add 即可进入

使用

设备上设置开启代理 地址为服务器地址 端口为7890

参考

群晖7.2系统通过Docker安装Clash实现全局代理科学上网——保姆级教程
Clash for Docker 容器配置指南:从安装到自动化更新
Clash配合Yacd实现科学上网