代理服务器设置
仅供自我研究docker 参考使用 请勿传播
安装
首先是配置文件获取脚本
修改下方文件中的文件中的你的订阅地址 如果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" - "7891:7891" - "9090:9090" restart: unless-stopped
yacd: image: haishanh/yacd container_name: yacd ports: - "8888:80" restart: unless-stopped
|
然后在浏览器键入https://服务器地址:8888
进入yacd 然后在api Base URL
中输入 http://服务器地址:9090
Clash API 端口 然后点击add 即可进入
使用
设备上设置开启代理 地址为服务器地址 端口为7890
参考
群晖7.2系统通过Docker安装Clash实现全局代理科学上网——保姆级教程
Clash for Docker 容器配置指南:从安装到自动化更新
Clash配合Yacd实现科学上网