引言
欢迎来到 Clash for Docker 容器的详细配置指南。无论你是 Docker 的新手,还是已经有一定经验的用户,本文都将为你提供详尽的步骤,指导你如何安装、配置 Clash 容器,并实现自动化更新和定时任务执行。
一、准备工作
- 安装 Docker
- 确保你的系统上已安装 Docker。若尚未安装,请访问 Docker 官方网站,根据你的操作系统下载并安装相应版本的 Docker。
- 获取 Clash 镜像
- 从 Docker Hub 拉取 Clash 镜像。例如,使用命令
docker pull centralx/clash
。
- 从 Docker Hub 拉取 Clash 镜像。例如,使用命令
二、启动 Clash 容器
你可以选择使用 docker run
命令或 docker-compose.yml
文件来启动 Clash 容器。
- 使用
docker run
命令
docker run -d \ --name clash \ -v /vol1/1000/docker/clash/config.yaml:/home/runner/.config/clash/config.yaml \ -p 7890:7890 \ -p 880:80 \ centralx/clash
请将
/vol1/1000/docker/clash/config.yaml
替换为你的实际配置文件路径。 - 使用
docker-compose.yml
文件
创建docker-compose.yml
文件,并添加以下内容:version: '3.8' services: clash: image: centralx/clash container_name: clash volumes: - /vol1/1000/docker/clash/:/home/runner/.config/clash/ ports: - "7890:7890" - "880:80" restart: unless-stopped
然后运行
docker-compose up -d
命令启动容器。- 需要将文件进行映射:- /vol1/1000/docker/clash/config.yaml:/home/runner/.config/clash/config.yaml
三、配置自动更新脚本
- 创建脚本文件
- 在宿主机的
/vol1/1000/docker/clash/
目录下创建名为clash.sh
的脚本文件。
- 在宿主机的
- 添加脚本内容
复制成功# 下载配置文件 wget -O /vol1/1000/docker/clash/config.yaml "https://你的订阅链接" # 检查下载是否成功 if [ $? -eq 0 ]; then # 更新配置文件,允许局域网连接 sed -i 's/allow-lan: false/allow-lan: true/g' /vol1/1000/docker/clash/config.yaml echo "配置文件已成功下载并更新。" # 检查是否存在名为 '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
- 请将
/vol1/1000/docker/clash/config.yaml
替换为你的实际配置文件路径。 - 将
https://你的订阅链接
替换为你的 Clash 订阅链接。 - 确保脚本中的容器名称与你的实际容器名称一致。
- 请将
- 给予执行权限
- 通过 SSH 登录到你的系统后台,并切换到 root 账号。
- 切换到
/vol1/1000/docker/clash/
目录,并给予clash.sh
脚本执行权限:chmod +x clash.sh
。
- 测试脚本
- 运行
./clash.sh
来测试脚本是否能正常运行。
- 运行
四、设置定时任务
在 Debian 系统中,你可以使用 cron 来设置定时任务。
- 打开 crontab 文件
- 运行
crontab -e
命令。
- 运行
- 添加定时任务
0 4 * * * /vol1/1000/docker/clash/clash.sh
这行命令表示每天凌晨 4 点执行
clash.sh
脚本。 - 保存并退出编辑器。
- 检查 cron 服务状态
- 运行
sudo systemctl status cron
命令来检查 cron 服务是否正在运行。 - 如果服务未运行,使用
sudo systemctl start cron
命令启动它。
- 运行
五、验证与测试 Clash 配置
- 检查 Clash 配置
- 确保 Clash 配置允许局域网的连接。你可以通过编辑
config.yaml
文件来检查或修改这一设置。
- 确保 Clash 配置允许局域网的连接。你可以通过编辑
- 配置代理
- 在 Windows 系统上配置代理,将代理设置为你的服务器 IP 和端口 7890,并添加不走代理的本地 IP 地址(如
localhost;127.*;10.*;172.16.*-172.31.*;192.168.*
等)。
localhost;127.*;10.*;172.16.*;172.17.*;172.18.*;172.19.*;172.20.*;172.21.*;172.22.*;172.23.*;172.24.*;172.25.*;172.26.*;172.27.*;172.28.*;172.29.*;172.30.*;172.31.*;172.32.*;192.168.*
- 在 Windows 系统上配置代理,将代理设置为你的服务器 IP 和端口 7890,并添加不走代理的本地 IP 地址(如
- 测试网络连接
- 确保代理配置正确且能够正常访问网络。你可以尝试访问一些网站或服务来验证 Clash 是否正常工作。
结语
通过以上步骤,你将能够成功配置 Clash for Docker 容器,并实现自动化更新和定时任务执行。如果遇到任何问题或需要进一步的帮助,请随时提问。