ECH Plus
客户端

Docker 部署

使用 Docker 部署 EchPlus 客户端

Docker 是部署 EchPlus 客户端最简单的方式,无需安装 Go 环境。

前置要求

快速开始

1. 构建镜像

cd apps/client docker build -t echplus-client .

2. 运行容器

docker run -d \  --name echplus-client \  -p 30000:30000 \  -e ECHPLUS_SERVER=your-worker.workers.dev:443 \  -e ECHPLUS_TOKEN=your-secret-token \  echplus-client

3. 验证运行

# 检查容器状态 docker ps | grep echplus-client  # 测试代理连接 curl -x socks5://127.0.0.1:30000 https://httpbin.org/ip

Docker Compose 部署

创建 docker-compose.yml:

version: "3.8" services:  echplus-client:  build: ./apps/client  container_name: echplus-client  ports:  - "30000:30000"  environment:  - ECHPLUS_LISTEN=0.0.0.0:30000  - ECHPLUS_SERVER=your-worker.workers.dev:443  - ECHPLUS_TOKEN=your-secret-token  - ECHPLUS_ROUTING=bypass_cn  restart: unless-stopped

运行:

docker-compose up -d

环境变量

变量默认值说明
ECHPLUS_LISTEN127.0.0.1:30000本地代理监听地址
ECHPLUS_SERVER-服务端地址 (必填)
ECHPLUS_SERVER_IP-指定服务端 IP
ECHPLUS_TOKEN147258369身份验证令牌
ECHPLUS_DNSdns.alidns.com/dns-queryECH 查询 DoH 服务器
ECHPLUS_ECH_DOMAINcloudflare-ech.comECH 配置域名
ECHPLUS_ROUTINGglobal分流模式

分流模式

模式说明
global全局代理,所有流量通过代理
bypass_cn跳过中国大陆 IP,国内网站直连
none直连模式,不使用代理
# 使用 bypass_cn 模式 docker run -d \  --name echplus-client \  -p 30000:30000 \  -e ECHPLUS_SERVER=your-worker.workers.dev:443 \  -e ECHPLUS_TOKEN=your-secret-token \  -e ECHPLUS_ROUTING=bypass_cn \  echplus-client

常用命令

# 查看日志 docker logs -f echplus-client  # 停止容器 docker stop echplus-client  # 重启容器 docker restart echplus-client  # 删除容器 docker rm -f echplus-client  # 更新镜像 docker build -t echplus-client . && docker restart echplus-client

生产环境建议

资源限制

services:  echplus-client:  # ...  deploy:  resources:  limits:  cpus: "0.5"  memory: 128M  reservations:  cpus: "0.1"  memory: 32M

日志配置

services:  echplus-client:  # ...  logging:  driver: "json-file"  options:  max-size: "10m"  max-file: "3"

网络模式

如果需要让局域网其他设备使用代理:

services:  echplus-client:  # ...  environment:  - ECHPLUS_LISTEN=0.0.0.0:30000  ports:  - "30000:30000"

然后其他设备可以使用 <宿主机IP>:30000 作为代理地址。

完整示例

version: "3.8" services:  echplus-client:  build: ./apps/client  container_name: echplus-client  ports:  - "30000:30000"  environment:  - ECHPLUS_LISTEN=0.0.0.0:30000  - ECHPLUS_SERVER=your-worker.workers.dev:443  - ECHPLUS_TOKEN=your-secret-token  - ECHPLUS_ROUTING=bypass_cn  restart: unless-stopped  deploy:  resources:  limits:  cpus: "0.5"  memory: 128M  logging:  driver: "json-file"  options:  max-size: "10m"  max-file: "3"

On this page