Trojan、VLESS 与 Shadowsocks 有什么区别?协议对比与选择建议

从设计思路、传输特征、性能开销、抗识别方式和客户端生态五个维度对比 Trojan、VLESS 与 Shadowsocks 三种代理协议,附对比表,并简要说明 VMess、Hysteria2、TUIC 的定位,给出按场景的选择建议。

Trojan、VLESS 与 Shadowsocks 的根本区别在设计思路:Trojan 把代理流量装进强制的 TLS 连接,让它看起来就是访问网站的 HTTPS;VLESS 是一个极简的传输协议,本身不加密,靠外挂的 TLS 或 REALITY 提供安全与伪装;Shadowsocks 则走轻量加密路线,把流量变成无明显特征的随机密文,不依赖 TLS。三者没有全面胜出者——选择哪一个,取决于你所处的网络环境、性能需求和客户端条件。

核心结论

  • Trojan:强制 TLS,伪装成 HTTPS,配置简单,依赖域名和证书;
  • VLESS:本体极简,搭配 TLS/REALITY/WebSocket 等传输层,灵活但组合复杂;
  • Shadowsocks:轻量对称加密,开销最小、生态最广,缺少 TLS 伪装层;
  • 多数用户的合理策略是保留两种以上协议互为备份,而不是押注单一协议。

工作原理

Trojan 的思路是「藏在人群里」:客户端与服务端建立标准 TLS 连接,通过密码哈希验证身份,验证失败的访问被回落到真实网站。它不发明加密,而是完整借用 HTTPS 的外观,机制详见 Trojan 协议如何通过 TLS 建立连接

VLESS 的思路是「做减法」:协议本身只负责用 UUID 标识用户和传递目标地址,不含加密,明文跑是不安全的,必须叠加传输层——常见组合有 VLESS+TLS+WebSocket、VLESS+REALITY 等。REALITY 更进一步,借用第三方真实网站的证书完成握手,服务端连自有域名都可以省去。

Shadowsocks 的思路是「无特征密文」:客户端与服务端用预共享密钥做 AEAD 对称加密,流量从第一个字节起就是随机数据,没有握手、没有证书,协议开销极小。它的抗识别假设是「无法解密也无法归类的流量难以处置」,与前两者「伪装成已知流量」的假设相反。

核心组成

协议必要要素配置复杂度
Trojan服务器地址、端口、密码、SNI、有效证书低,字段固定
VLESS服务器地址、端口、UUID、传输层组合(TLS/REALITY/WS 等)中到高,组合多
Shadowsocks服务器地址、端口、密码、加密方法最低

对使用者来说,Trojan 与 Shadowsocks 的节点信息基本「拿来即用」;VLESS 节点则要留意传输层参数(如 flowreality-opts、WebSocket 路径)是否被客户端完整识别,组合越多,配置出错面越大。

优点

  • Trojan:流量外观与普通 HTTPS 高度一致;协议简单,主流客户端全覆盖;回落机制天然抵抗主动探测;
  • VLESS:本体无加密开销,性能上限高;传输层可按环境自由更换,REALITY 免去域名证书成本;Xray 生态迭代活跃;
  • Shadowsocks:实现最轻、延迟开销最小;历史悠久,客户端与平台覆盖面在三者中最广;没有证书体系依赖,部署门槛低。

限制

  • Trojan:必须持有域名与有效证书;TLS 之上再套 HTTPS 会双重加密;协议本身无多路复用等传输优化;
  • VLESS:安全性完全取决于所选传输层,选错组合等于裸奔;参数多,不同客户端对新特性的支持进度不一;
  • Shadowsocks:缺少 TLS 伪装,在流量分析严格的环境下可用性波动较大;旧的非 AEAD 加密方式已被证明不安全,须确认使用 AEAD 版本。

与其他协议的区别

三者的核心差异一览(协议设计层面):

维度TrojanVLESSShadowsocks
伪装方式强制 TLS,伪装 HTTPS,可回落依传输层:TLS、REALITY、WebSocket 等无伪装层,随机密文
是否强制 TLS否(强烈建议搭配)
UDP 支持有,UDP over TLS/TCP有,依实现(XUDP 等)有,独立 UDP relay
典型端口443443(TLS 类组合)任意端口
客户端支持广泛广泛,新特性以 Xray/sing-box 为先最广泛

对比表描述协议设计,不代表任一服务的实际体验。除这三者外,还有几个常见名字值得知道定位:VMess 是 VLESS 的前身,自带加密,现多作兼容选项;Hysteria2TUIC 基于 QUIC(UDP)构建,主打弱网与高吞吐场景,但 UDP 被限速的线路上表现会受影响;它们与本文三者是互补关系,常在同一订阅中并存。

适用场景

按场景给出倾向性建议(避免绝对化,实际以自己环境实测为准):

  • 新手第一条节点:Trojan 或 VLESS+TLS。字段直观、伪装可靠,配合 Trojan 节点是什么可以快速建立概念;
  • 网络环境敏感、常规节点不稳:优先尝试 VLESS+REALITY,其次是配置规范的 Trojan;
  • 低配设备、路由器、老旧客户端:Shadowsocks 的开销和兼容性优势明显;
  • 游戏与实时语音:确认所选协议节点的 UDP 已开启(见 Trojan 节点支持 UDP 吗),弱网环境可考虑 Hysteria2/TUIC 类节点;
  • 多协议混用:用 sing-box 或 Clash Meta 把不同协议节点放进同一配置,教程见 sing-box 使用 Trojan 配置完整教程

无论选择哪种协议,请遵守所在地法律法规,仅用于合法用途。

延伸阅读

常见问题

三种协议里哪个「最不容易被识别」?
没有绝对答案。Trojan 和 VLESS+REALITY 走「混入正常 TLS 流量」的路线,Shadowsocks 依赖无特征的随机密文,两条思路在不同网络环境下各有表现。识别与反识别是持续演进的过程,更实际的做法是选择维护活跃的协议与实现,并保留多协议备选。
Shadowsocks 是不是已经过时了?
谈不上过时。Shadowsocks 协议简单、开销小、客户端覆盖面广,AEAD 加密版本仍在广泛使用,许多服务方将它作为兼容性兜底协议提供。它的短板是缺少 TLS 伪装层,在部分网络环境下可用性波动较大,因此常与其他协议搭配而非单独依赖。
VLESS 和 VMess 是什么关系?
两者都来自 V2Ray 生态。VMess 是早期协议,自带加密和基于时间的校验;VLESS 是其精简后继者,去掉了内置加密,把安全性交给 TLS 或 REALITY 等传输层承担,开销更低。目前 Xray 生态的新部署以 VLESS 为主,VMess 更多是历史兼容选项。
订阅里同时有 Trojan、VLESS、Shadowsocks 节点,应该用哪个?
可以都保留,按场景切换。日常使用可优先选择带 TLS 伪装的 Trojan 或 VLESS 节点;某类节点集体异常时,切换到另一协议是快速的自救手段。主流客户端如 Clash Meta、sing-box 支持在同一配置中混用多种协议,无需二选一。

参考资料

本文最后更新于 。如发现内容过时,欢迎通过联系页面反馈。

本文由 Trojan Lab 技术审核组 审核,采编标准见编辑政策