Docker安装Clash全流程配置指南

本文详解在Docker环境中部署Clash代理容器的完整步骤,涵盖镜像拉取、配置文件编写、容器启动及TUN模式切换等核心操作,并提供代理组类型选择与分流规则配置建议。

环境准备与镜像拉取

Docker安装Clash前需确认宿主机已安装Docker环境,执行以下命令检查Docker状态:

docker --version

若未安装,需先完成Docker引擎部署,确认环境就绪后,拉取Clash官方镜像:

docker pull dreamacro/clash

建议使用latest标签以获取最新版本,也可指定具体版本号以保证配置稳定性。

配置文件准备

Clash运行依赖YAML格式配置文件,创建配置目录并编辑核心文件:

mkdir -p /etc/clash
vi /etc/clash/config.yaml

配置文件需包含以下基础字段:

port: 7890
socks-port: 7891
allow-lan: false
mode: rule
external-controller: 0.0.0.0:9090
proxies:
  - name: "节点名称"
    type: ss
    server: your-server.com
    port: 443
    cipher: aes-256-gcm
    password: your-password
proxy-groups:
  - name: "自动选择"
    type: url-test
    proxies:
      - 节点名称
    url: http://www.gstatic.com/generate_204
    interval: 300

容器启动与端口映射

完成配置后,通过Docker运行Clash容器:

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

端口映射说明:7890为HTTP/HTTPS代理端口,7891为SOCKS5代理端口,9090为RESTful API控制端口。

TUN模式与系统代理区别

Clash支持两种运行模式:TUN模式系统代理模式

系统代理模式仅处理HTTP/HTTPS流量,适用于浏览器网页访问场景,TUN模式则可接管全部网络流量,包括UDP协议及游戏数据包,实现更全面的流量转发。

启用TUN模式需在配置中添加:

tun:
  enable: true
  stack: system
  dns-hijack:
    - 8.8.8.8
    - 114.114.114.114

TUN模式消耗更多系统资源,但能解决部分应用无法走代理的问题。

分流规则配置

Clash通过规则匹配实现智能分流,主要规则类型包括:

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

规则按顺序匹配,命中后执行对应策略,建议配置顺序为:直连规则 → 代理规则 → 拒绝规则 → 兜底策略。

代理组类型选择

代理组配置决定节点切换策略:

类型 特性 适用场景
select 手动选择节点 需要固定节点
url-test 自动测速选择延迟最低 日常上网
fallback 主节点故障自动切换 追求稳定性

日常使用推荐url-test类型,设置测速URL与间隔时间即可实现自动选优。

FAQ

现象:容器启动后无法连接代理

原因:配置文件语法错误或节点信息有误

解决方法:使用docker logs clash查看错误日志,检查YAML格式缩进及节点参数

现象:TUN模式下部分应用无法上网

原因:DNS劫持冲突或TUN栈兼容性问题

解决方法:调整dns-hijack参数或将stack改为gvisor

现象:代理规则未生效

原因:规则优先级排列错误

解决方法:检查规则顺序,确保直连/代理分类清晰

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