代理协议详解
代理协议是机场和自建节点背后的核心技术。了解不同协议的原理、优劣和适用场景,能帮助你做出更明智的选择。本文将深入介绍目前主流的代理协议。
协议演进历史
代理协议的发展是一场持续的"猫鼠游戏":
Shadowsocks (2012) → VMess (2015) → Trojan (2019) → VLESS (2020) → Reality (2023) → Hysteria 2 (2023)
每一代协议都在前一代的基础上,针对更强的检测和封锁手段做出了改进。
Shadowsocks (SS)
概述
Shadowsocks 是最经典的代理协议之一,由 @clowwindy 于 2012 年创建。它使用对称加密来保护流量,设计简洁、性能高效。
工作原理
客户端 ──[加密流量]──→ SS 服务端 ──[解密]──→ 目标网站
↓
客户端 ←──[加密流量]──── SS 服务端 ←──[响应]──── 目标网站
SS 的核心思路是将用户的请求加密后发送到远端服务器,服务器解密后代为访问目标网站,再将响应加密返回。
优缺点
| 优点 | 缺点 |
|---|---|
| 设计简洁,性能极高 | 协议特征已被较好识别 |
| 资源占用低 | 部分加密方式已不再安全 |
| 生态成熟,客户端支持广泛 | 不带混淆的 SS 容易被精准识别 |
| 易于部署和配置 | — |
推荐加密方式
注意
请务必使用 AEAD 加密方式,避免使用已经不安全的 Stream Cipher(如 aes-256-cfb、rc4-md5 等)。
- 推荐
aes-256-gcm - 推荐
chacha20-ietf-poly1305 - 推荐
2022-blake3-aes-256-gcm(Shadowsocks 2022 新标准) - 避免
aes-256-cfb、rc4-md5等旧加密方式
VMess
概述
VMess 是 V2Ray 项目引入的协议,设计目标是提供更安全、更难被识别的代理传输。它支持身份认证、时间校验和多种传输方式。
工作原理
VMess 使用 UUID 作为用户身份标识,并通过时间戳校验来防止重放攻击。它支持多种底层传输协议(TCP、WebSocket、gRPC、HTTP/2 等)。
客户端 ──[UUID 认证 + 时间校验 + 加密]──→ VMess 服务端
优缺点
| 优点 | 缺点 |
|---|---|
| 身份认证机制完善 | 协议设计较复杂,有已知的弱点 |
| 支持多种传输方式 | 纯 TCP 模式容易被主动探测 |
| V2Ray 生态完善 | 时间校验要求客户端和服务端时间同步 |
| 可与 CDN 配合使用 | 性能不如 SS 高 |
建议配置
- 传输方式选择 WebSocket + TLS 或 gRPC + TLS
- 搭配 Nginx / Caddy 做前置反代
- 确保客户端和服务端时间差在 90 秒以内
Trojan
概述
Trojan 的设计理念是"在 TLS 流量中隐藏代理流量"——它将代理流量伪装成正常的 HTTPS 访问。对于审查者来说,Trojan 的流量看起来与普通的 HTTPS 浏览几乎没有区别。
工作原理
客户端 ──[TLS 连接]──→ 服务端(443 端口)
├── 密码正确?→ 代理流量
└── 密码错误?→ 正常网页
Trojan 直接使用 TLS 加密,服务端在 443 端口同时运行代理服务和一个正常的 Web 服务器。如果传入的连接提供了正确的密码,就作为代理处理;否则将请求转发给 Web 服务器,返回正常的网页内容。
优缺点
| 优点 | 缺点 |
|---|---|
| 流量完全模拟 HTTPS,极难被识别 | 需要域名和有效的 TLS 证书 |
| 性能优秀(直接使用 TLS) | 指纹可能被分析(TLS Client Hello) |
| 配置相对简单 | 不支持 CDN 转发(原生协议) |
| 回落机制增加安全性 | — |
建议配置
- 使用有效的域名和 Let's Encrypt 证书
- 回落页面设置为一个正常的网站(如博客、企业官网)
- 搭配 Caddy 实现自动 TLS 证书管理
VLESS
概述
VLESS 是 Xray 项目推出的轻量级协议,可以看作 VMess 的精简版。它去掉了 VMess 中复杂的加密和时间校验机制,将加密工作完全交给 TLS 层处理,从而实现更高的性能。
工作原理
VLESS 本身不进行加密(这与 VMess 最大的区别),而是依赖底层传输的 TLS 来保证安全性。这意味着 VLESS 必须 搭配 TLS(或 Reality)使用。
VLESS + Reality
Reality 是 VLESS 最重要的搭档。它使用 TLS 1.3 的特性,可以在不需要域名和证书的情况下提供类似 TLS 的安全连接,并且能够伪装成任意目标网站的流量。
客户端 ──[看起来像访问 apple.com]──→ 服务端
↑ 实际上是代理流量
这使得 Reality 成为截至 2026 年最强的抗检测方案之一。
优缺点
| 优点 | 缺点 |
|---|---|
| 性能极高(无额外加密开销) | 必须搭配 TLS 或 Reality |
| Reality 方案无需域名和证书 | 理解门槛稍高 |
| 抗检测能力极强 | 客户端支持相对较新 |
| 配置灵活 | — |
建议配置
- 首选 VLESS + Reality:无需域名,抗检测能力最强
- 次选 VLESS + XTLS-Vision + TLS:需要域名,但性能最好
- 备选 VLESS + WebSocket + TLS:可以过 CDN,但会增加延迟
Hysteria 2
概述
Hysteria 2 是基于 QUIC(HTTP/3 底层协议)的代理协议。与上述基于 TCP 的协议不同,Hysteria 2 使用 UDP 传输,在高延迟、高丢包的网络环境下有显著优势。
工作原理
Hysteria 2 使用改进的拥塞控制算法(Brutal),可以在网络条件较差时保持较高的传输速度。它的流量看起来像标准的 HTTP/3 流量。
优缺点
| 优点 | 缺点 |
|---|---|
| UDP 传输,在高延迟/高丢包网络下表现出色 | 部分网络可能限制或封锁 UDP |
| QUIC 加密,安全性好 | 需要域名和证书 |
| 流量伪装为 HTTP/3 | 在网络条件好时优势不明显 |
| 支持端口跳跃(Port Hopping) | 部分客户端支持不完善 |
| 配置简单 | — |
适用场景
- 移动网络(4G/5G)——UDP 在移动网络下的表现通常优于 TCP
- 高延迟线路——如中美之间的普通线路
- 运营商 QoS 环境——端口跳跃功能可以对抗限速
- 与 TCP 代理做互补——作为备用方案
协议对比总结
| 协议 | 抗检测 | 性能 | 配置难度 | 需要域名 | 传输层 |
|---|---|---|---|---|---|
| Shadowsocks 2022 | 中 | 高 | 简单 | 否 | TCP |
| VMess + WS + TLS | 较高 | 中 | 中等 | 是 | TCP |
| Trojan | 较高 | 高 | 中等 | 是 | TCP |
| VLESS + Reality | 极高 | 高 | 中等 | 否 | TCP |
| VLESS + XTLS-Vision | 极高 | 极高 | 中等 | 是 | TCP |
| Hysteria 2 | 较高 | 高 | 简单 | 是 | UDP |
选择建议
- 新手用户:选择机场提供的默认协议即可,不需要过度纠结
- 自建用户-首选:VLESS + Reality —— 不需要域名,抗检测能力强,配置相对简单
- 自建用户-需要 CDN:VLESS + WebSocket + TLS 或 VMess + WebSocket + TLS
- 网络条件差:Hysteria 2 作为主力或备用
- 追求极致性能:VLESS + XTLS-Vision 搭配优质线路
务实的建议
不要迷信"最新"或"最强"的协议。适合你的网络环境和使用场景的协议,才是最好的协议。建议至少准备两种协议方案,在主力方案失效时可以快速切换。
相关项目
以下是本文涉及的核心开源项目,供进一步了解:
| 项目 | 说明 | 地址 |
|---|---|---|
| Xray-core | VLESS / VMess / Trojan 等协议的核心实现 | GitHub |
| sing-box | 通用代理平台,支持多种协议 | GitHub |
| Hysteria 2 | 基于 QUIC 的高性能代理协议 | GitHub |
| mihomo | Clash Meta 内核,广泛用于各类客户端 | GitHub |