Docker 安装 Clash 完整指南

在容器化环境中部署 Clash 可实现配置热更新与资源隔离,本文详解通过 Docker 安装 Clash 的步骤,解析代理组类型、TUN 模式与系统代理的区别,并提供分流规则配置示例。

Docker 安装 Clash 核心步骤

拉取 Clash 官方镜像

docker pull dreamacro/clash

创建配置文件目录

mkdir -p /etc/clash

启动 Clash 容器

docker run -d --name clash \
  -v /etc/clash:/root/.config/clash \
  -p 7890:7890 -p 7891:7891 -p 9090:9090 \
  --restart=always \
  dreamacro/clash

首次启动后,容器会自动生成 config.yaml 模板文件,编辑该文件填入订阅链接或手动配置节点。

验证运行状态

docker logs clash

看到 HTTP Proxy listening at 即表示服务正常。


代理组类型与适用场景

Clash 代理组决定节点选择逻辑,需根据使用场景选择:

代理组类型 原理 适用场景
select 手动指定节点 需要固定出口地区
url-test 自动测速选择延迟最低节点 日常跨境访问
fallback 优先使用列表中首个可用节点 保障业务连续性

配置示例:

proxy-groups:
  - name: auto-group
    type: url-test
    proxies:
      - node-1
      - node-2
      - node-3
    url: http://www.gstatic.com/generate_204
    interval: 300

TUN 模式与系统代理的区别

  • 系统代理:仅接管 HTTP/HTTPS/SOCKS5 协议流量,配置简单但无法处理游戏客户端、UDP 流量
  • TUN 模式:创建虚拟网卡接管所有 TCP/UDP 流量,适用于游戏加速、直播推流等场景

Docker 环境中启用 TUN 需添加特权模式:

docker run -d --name clash \
  --privileged \
  -v /etc/clash:/root/.config/clash \
  -p 7890:7890 \
  dreamacro/clash

分流规则写法与优先级

Clash 规则按顺序匹配,常用规则类型:

  • DOMAIN:精确域名匹配
  • DOMAIN-SUFFIX:域名后缀匹配
  • IP-CIDR:IP 段匹配
  • GEOIP:国家/地区匹配

优先级:DOMAIN > DOMAIN-SUFFIX > IP-CIDR > GEOIP > FINAL

rules:
  - DOMAIN-SUFFIX,google.com,auto-group
  - DOMAIN-KEYWORD,netflix,auto-group
  - IP-CIDR,10.0.0.0/8,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,auto-group

FAQ

Q:容器启动后无法访问管理面板? A:检查配置文件是否开启 external-controller: 0.0.0.0:9090,并确认防火墙放行对应端口。

Q:节点延迟正常但无法连接? A:可能是 TUN 模式未开启导致 UDP 流量被拦截,或分流规则将目标域名直连,需检查规则顺序。

Q:如何实现配置热更新? A:更新订阅链接后执行 docker exec clash clash -t 验证配置,无误后 docker exec clash clash -u 立即生效。

您可以还会对下面的文章感兴趣: