引言

欢迎来到 Clash for Docker 容器的详细配置指南。无论你是 Docker 的新手,还是已经有一定经验的用户,本文都将为你提供详尽的步骤,指导你如何安装、配置 Clash 容器,并实现自动化更新和定时任务执行。

一、准备工作

  1. 安装 Docker

    • 确保你的系统上已安装 Docker。若尚未安装,请访问 Docker 官方网站,根据你的操作系统下载并安装相应版本的 Docker。
  2. 获取 Clash 镜像

    • 从 Docker Hub 拉取 Clash 镜像。例如,使用命令 docker pull centralx/clash

二、启动 Clash 容器

你可以选择使用 docker run 命令或 docker-compose.yml 文件来启动 Clash 容器。

  • 使用 docker run 命令

    1
    2
    3
    4
    5
    6
    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 文件,并添加以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    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

三、配置自动更新脚本

  1. 创建脚本文件

    • 在宿主机的 /vol1/1000/docker/clash/ 目录下创建名为 clash.sh 的脚本文件。
  2. 添加脚本内容

    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
    #!/bin/bash

    # 下载配置文件
    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 订阅链接。
    • 确保脚本中的容器名称与你的实际容器名称一致。
  3. 给予执行权限

    • 通过 SSH 登录到你的系统后台,并切换到 root 账号。
    • 切换到 /vol1/1000/docker/clash/ 目录,并给予 clash.sh 脚本执行权限:chmod +x clash.sh
  4. 测试脚本

    • 运行 ./clash.sh 来测试脚本是否能正常运行。

四、设置定时任务

在 Debian 系统中,你可以使用 cron 来设置定时任务。

  1. 打开 crontab 文件

    • 运行 crontab -e 命令。
  2. 添加定时任务

    1
    0 4 * * * /vol1/1000/docker/clash/clash.sh

    这行命令表示每天凌晨 4 点执行 clash.sh 脚本。

  3. 保存并退出编辑器

  4. 检查 cron 服务状态

    • 运行 sudo systemctl status cron 命令来检查 cron 服务是否正在运行。
    • 如果服务未运行,使用 sudo systemctl start cron 命令启动它。

五、验证与测试 Clash 配置

  1. 检查 Clash 配置

    • 确保 Clash 配置允许局域网的连接。你可以通过编辑 config.yaml 文件来检查或修改这一设置。
  2. 配置代理

    • 在 Windows 系统上配置代理,将代理设置为你的服务器 IP 和端口 7890,并添加不走代理的本地 IP 地址(如 localhost;127.*;10.*;172.16.*-172.31.*;192.168.* 等)。
      1
      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.*
  3. 测试网络连接

    • 确保代理配置正确且能够正常访问网络。你可以尝试访问一些网站或服务来验证 Clash 是否正常工作。

结语

通过以上步骤,你将能够成功配置 Clash for Docker 容器,并实现自动化更新和定时任务执行。如果遇到任何问题或需要进一步的帮助,请随时提问。