知识百科
VMess 是什么:V2Ray 的原始协议、传输方式组合与现状
解释 VMess 协议:V2Ray 项目的原始加密协议,使用 UUID 认证并自带加密,可与 TCP、WebSocket、gRPC 等传输方式及 TLS 组合。说明它的特点、对时间同步的依赖、性能开销,以及为什么逐渐被 VLESS 取代。
VMess 是 V2Ray 项目诞生时的协议,功能完整、组合灵活,至今仍被所有客户端支持。理解它,也就理解了它的继任者 VLESS 为什么那样设计。
工作方式
- 认证: 客户端与服务器共享一个 UUID,每次请求用 UUID 与时间戳生成认证信息。
- 加密: 协议自带加密(aes-128-gcm、chacha20-poly1305 或 none)。
- 传输层: 可以跑在 TCP、WebSocket、HTTP/2、gRPC 上,每种可再叠加 TLS。
常见组合:VMess + WebSocket + TLS。流量看起来是一个 WebSocket 连接,可以放在 CDN 后面。
特点
优点:
- 传输方式灵活,可以配合 CDN。
- 自带加密,不用 TLS 也有基本保护。
- 客户端支持最广。
缺点:
- 与 TLS 叠加时双重加密,CPU 开销高。
- 认证依赖时间戳,系统时间偏差超过 90 秒握手失败。
- 协议头有一定特征。
时间同步问题
VMess 节点全部超时、其他协议正常时,先看系统时间。手机与电脑都开自动同步时间。这是 VMess 特有的故障点,VLESS 已去除。
与 VLESS 的关系
VLESS 是 VMess 的精简版:去掉内置加密(完全依赖 TLS)、去掉时间校验、协议头更简单。在 TLS 环境下 VLESS 更快,功能上没有损失。机场新部署的节点多用 VLESS,但 VMess 仍大量存在。见 VLESS 是什么。
在机场中的位置
VMess + WS + TLS 曾是公网节点的主流组合,现在逐渐被 VLESS 与 Trojan 取代。节点名称标注 VMess 时,客户端无需任何特殊设置。
其他协议:Shadowsocks、Trojan。
常见问题
- VMess 是什么?
- V2Ray 的原始代理协议,UUID 认证,自带加密,支持多种传输方式。机场节点标注 VMess 表示使用此协议。
- VMess 和 VLESS 有什么区别?
- VLESS 去掉了 VMess 的内置加密(依赖 TLS)与时间校验,更轻量。两者认证方式相同(UUID)。
- VMess 节点全部超时是什么原因?
- 排除常规原因后,检查系统时间。VMess 对时间偏差敏感,偏差超过 90 秒会握手失败。