本文详解在服务器或本地通过Docker部署Clash核心的完整步骤,涵盖镜像选择、配置文件编写、端口映射及容器管理,并介绍代理组类型与分流规则的实际应用,帮助用户快速构建稳定的网络访问环境。
Docker部署Clash前置条件
部署前需确保服务器或本地主机已安装Docker环境,推荐使用Docker Compose进行容器编排,便于后续管理和配置更新。
检查Docker是否正常运行:
docker --version docker-compose --version
若未安装,可参考官方文档完成对应系统的Docker安装。
获取Clash镜像
Clash官方不提供Docker镜像,需使用第三方维护的版本,推荐clash-verge-rev或clash-meta镜像,后者支持更多协议和TUN模式。
docker pull dreamacro/clash-meta
配置文件准备
在宿主机创建配置目录:
mkdir -p /opt/clash/{config,logs}
编辑config.yaml配置文件:
mixed-port: 7890
allow-lan: true
mode: rule
log-level: info
external-controller: 0.0.0.0:9090
proxies:
- name: "节点1"
type: ss
server: example.com
port: 8388
cipher: aes-256-gcm
password: your-password
proxy-groups:
- name: "自动选择"
type: url-test
proxies:
- 节点1
url: "http://www.gstatic.com/generate_204"
interval: 300
rules:
- DOMAIN-SUFFIX,google.com,自动选择
- GEOIP,CN,DIRECT
- MATCH,自动选择
代理组类型详解
Select(手动选择)
手动指定代理节点,适合需要明确控制出口的场景。
URL-Test(自动测速)
自动检测节点延迟,选择响应最快的节点,配置中的interval: 300表示每5分钟测速一次。
Fallback(故障转移)
主节点不可用时自动切换到备用节点,保证连接稳定性。
启动容器
使用Docker Compose方式创建docker-compose.yml:
version: '3'
services:
clash:
image: dreamacro/clash-meta
container_name: clash-core
volumes:
- ./config:/root/.config/clash
ports:
- "7890:7890"
- "7891:7891"
- "9090:9090"
restart: unless-stopped
启动命令:
docker-compose up -d
TUN模式与系统代理区别
| 特性 | TUN模式 | 系统代理 |
|---|---|---|
| 流量范围 | 所有流量(含UDP/游戏) | 仅HTTP/HTTPS |
| 权限需求 | 需要特权模式 | 普通权限 |
| 性能开销 | 略高 | 较低 |
TUN模式配置需在配置文件中添加:
tun:
enable: true
stack: system
dns-hijack:
- 8.8.8.8
分流规则写法
DOMAIN
精确匹配域名:DOMAIN,www.example.com,代理组
DOMAIN-SUFFIX
匹配域名后缀:DOMAIN-SUFFIX,google.com,自动选择
IP-CIDR
匹配IP段:IP-CIDR,10.0.0.0/8,DIRECT
GEOIP
按国家/地区分流:GEOIP,CN,DIRECT
规则优先级:从上往下匹配,命中即停止,建议将精确规则放在前面,通用规则放在后面。
FAQ
现象:容器启动后无法连接
原因:配置文件语法错误或节点信息无效
解决方法:使用docker logs clash-core查看日志,确认配置文件格式正确
现象:TUN模式无法正常工作
原因:容器缺少NET_ADMIN权限
解决方法:添加--cap-add NET_ADMIN参数或Docker Compose中配置cap_add
现象:代理规则未生效
原因:规则顺序错误或模式设置不当
解决方法:检查mode配置,确保为rule模式,规则列表按优先级排列
节点订阅推荐
完成Clash Docker部署后,需要配置有效的节点订阅才能正常使用,建议选择支持多协议、高可用的节点服务:
- 4K视频需求:选择支持大带宽的中转或专线节点
- 游戏加速:优先低延迟、高稳定性的专线节点
- 跨境办公:注重稳定性和安全性的企业级线路
通过SubConverter工具可将不同格式的订阅链接转换为Clash YAML格式,实现跨平台统一管理。
