硬核网络2026-11-15

Shadowsocks vs VMess vs Trojan vs VLESS:四种协议官方怎么说

Shadowsocks、VMess、Trojan、VLESS 在各自官方文档里是怎么定义的、有哪些关键设置项,这里按文档原意做成对照表,只讲定义和设置,不比较谁更快或更安全。

品
品牌图鉴编辑部
Author

四种协议各有官方文档:Shadowsocks 是拆分式代理,Trojan 要求先完成真实的 TLS 握手,VMess 依赖系统时间,VLESS 无状态并用 UUID 认证。官方文档没有给出谁更快或更安全的结论。

四种协议在官方文档里各是什么?

下表只取各家文档里的定义。

协议文档里的定义
Shadowsocks基于 SOCKS5 的拆分式代理,客户端与服务端分开运行
VMess加密传输协议,多用于 Xray 的客户端与服务端之间
Trojan先完成真实 TLS 握手,之后流量都在 TLS 内
VLESS无状态的轻量传输协议,用 UUID 认证

sing-box 的出站类型清单里,这四种都有,另外还有 hysteria2、tuic 等。

Shadowsocks 的文档讲了什么?

Shadowsocks 的本地端表现得像一台普通的 SOCKS5 服务器,收下请求后先加密再转发。远端负责解密并连上目标,回包按原来的路径送回客户端。 目标地址的写法与 SOCKS5 一致,可以是 IPv4、IPv6 或域名。 官方 AEAD 页对实现提出要求:必须支持 AEAD_CHACHA20_POLY1305;设备带硬件 AES 加速时,另外要支持 AES-128-GCM 和 AES-256-GCM。 按官方的说法,AEAD 加密能同时做到保密、完整和可验证来源。

Trojan 的握手是怎么规定的?

按 Trojan 协议,客户端得先完成一次真实的 TLS 握手,此后所有数据都放在 TLS 里传输。 握手完成后发出的首个包,按顺序包含:密码的 SHA224 十六进制哈希(56 字节)、CRLF、类 SOCKS5 请求、CRLF 和负载。 请求命令字中,0x01 表示 CONNECT,0x03 表示 UDP ASSOCIATE。 文档另有一条:如果密码或请求格式不符,服务端会把这条流量当成别的协议处理,转到预设端点,默认指向本机 80 端口上的 HTTP 服务。

VMess 和 VLESS 的 Xray 文档有什么设置项?

VMess 的 security 可选 aes-128-gcm、chacha20-poly1305 和 auto。选 auto 时,AMD64、ARM64、s390x 架构上用 AES-128-GCM,别的架构用 ChaCha20-Poly1305。 Xray 文档给出提醒:VMess 靠系统时间工作,本机时钟与 UTC 的偏差不能超过 120 秒。 VLESS 与系统时间无关。它的 encryption 字段不可为空,想关闭加密就得明确填 none。flow 的取值有空值、xtls-rprx-vision 等。 VLESS 要有外层的传输安全;受信任的私有地址和已启用 VLESS Encryption 的情况除外。XTLS 仅适用于 TCP 加 TLS 或 REALITY,以及 VLESS Encryption。

同一个协议在不同客户端里的字段名可能不同,以所用客户端的官方文档为准。

官方文档怎么写“谁更好”?

没有写。各协议文档只定义自己是什么、有哪些设置,速度、稳定性、抗封锁能力的比较,官方文档里都没有出现,所以这里也不做排序。 Shadowsocks 流式加密与 AEAD 的官方对比,以及 VMess 的 alterId 是否弃用,所取文档里同样没有说明。

选客户端时怎么对应这些协议?

协议只是线路里的一环,节点在订阅里用什么协议由服务商决定,客户端要支持对应的出站类型才能用。 想了解客户端内核的区别,见 Clash 各内核的区别;节点信息的读法见 机场节点怎么看;名词不熟可以查 协议术语解释。

常见问题

Q:四种协议里哪个速度更高? 官方文档没有给出速度比较。各文档只写协议的定义和设置项。

Q:VMess 为什么要求系统时间准确? Xray 文档说明 VMess 靠系统时间工作,本机时钟与 UTC 的差距要在 120 秒以内。

Q:VLESS 的 encryption 能不填吗? 不能为空。Xray 文档要求想关闭加密时明确写成 none。


依据:官方文档 · 最近核对 2026-11-01