技术原理
EchPlus 的核心技术原理
什么是 ECH?
ECH (Encrypted Client Hello) 是 TLS 1.3 的扩展协议,用于加密 TLS 握手过程中的 ClientHello 消息,特别是 SNI (Server Name Indication) 字段。
传统 TLS 的问题
在传统 TLS 握手中,SNI 字段以明文传输,这意味着:
客户端 → 服务器: ClientHello (SNI: example.com) [明文]中间人可以看到你正在访问哪个网站,即使后续通信是加密的。
ECH 的解决方案
ECH 通过以下方式解决这个问题:
1. 客户端通过 DNS HTTPS 记录获取 ECH 配置
2. 使用 ECH 公钥加密 ClientHello 中的敏感信息
3. 中间人只能看到外层的 SNI (通常是 CDN 域名)EchPlus 工作原理
架构概览
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 应用程序 │────▶│ EchPlus │────▶│ 服务端 │────▶ 目标网站
│ (浏览器等) │ │ 客户端 │ │ (WebSocket) │
└─────────────┘ └─────────────┘ └─────────────┘
SOCKS5/HTTP ECH + WSS TCP连接流程
-
本地代理监听
- 客户端在本地启动 SOCKS5/HTTP 代理服务
- 应用程序将流量发送到本地代理
-
ECH 配置获取
- 通过 DoH (DNS over HTTPS) 查询 HTTPS 记录
- 获取 ECH 配置参数 (公钥等)
-
建立安全连接
- 使用 ECH 加密 TLS ClientHello
- 通过 WebSocket 连接到服务端
- 外层 SNI 显示为普通 CDN 域名
-
数据转发
- 服务端接收请求后连接目标服务器
- 双向转发数据
分流模式
EchPlus 支持三种分流模式:
| 模式 | 说明 |
|---|---|
global | 全局代理,所有流量通过代理 |
bypass_cn | 跳过中国大陆 IP,国内直连 |
none | 直连模式,不使用代理 |
bypass_cn 模式原理
// 1. 加载中国 IP 段列表
// 2. 对目标地址进行 IP 查询
// 3. 使用二分查找判断是否为中国 IP
// 4. 中国 IP 直连,其他走代理协议支持
SOCKS5 协议
支持完整的 SOCKS5 协议:
- CONNECT 命令 (TCP 连接)
- UDP ASSOCIATE (UDP 转发,用于 DNS 查询)
HTTP 代理
支持标准 HTTP 代理协议:
- CONNECT 方法 (HTTPS 隧道)
- GET/POST 等方法 (HTTP 请求转发)
安全特性
- ECH 加密 - 隐藏真实访问目标
- Token 认证 - 防止未授权访问
- TLS 1.3 - 使用最新加密标准
- DoH 查询 - DNS 查询也走加密通道