2026-08-06 · 协议科普 · 约 8 分钟

VMess 和 VLESS 有什么区别:v2rayNG 用户的协议速览

从加密方式、额外 ID、传输层组合与 REALITY 适配四个角度,讲清 VMess 与 VLESS 的差别,以及导入节点时该看哪几个字段。

本文速览

在 v2rayNG 中打开节点编辑页,先看协议,再看传输与安全设置。VMess 有自身的数据加密机制;常见 VLESS 配置把链路保护交给 TLS 或 REALITY。本文适合已经拿到订阅、需要核对字段的 Android 用户,重点解释额外 ID、SNI、传输路径与 flow,帮助区分导入错误和线路问题。

先在节点编辑页分清协议、传输和安全层

在 v2rayNG 主界面找到节点,点该条目的编辑图标,查看顶部协议及下方连接参数。不同版本的字段排序可能不同,但核对顺序不变:服务器地址与端口、用户 ID、传输方式、传输层安全。查看后若没有明确修改依据,直接返回,不要保存试填值。

VMess、VLESS 是代理协议;TCP、WebSocket、gRPC 是传输方式;TLS、REALITY 是连接安全相关的选项。它们不是同一层的替代品。节点写着 VLESS,并不能据此判断它使用哪种传输,也不能推断它一定启用了 REALITY。

核对项VMessVLESS
用户身份通常使用 UUID通常使用 UUID
协议数据加密支持自身的数据加密机制常见配置的 encryption 为 none,依靠外层保护
额外 ID现代 AEAD 配置使用 0没有此字段
常见连接组合VMess + WebSocket + TLSVLESS + TCP + REALITY,或 WebSocket + TLS
导入时的重点额外 ID、加密选项与传输参数安全层、flow 与对应安全参数

订阅是配置的分发入口,不是第四种协议。同一份订阅可以包含两类节点。路由分流则决定哪些连接走哪个出口,不会把 VMess 自动转换成 VLESS;分应用代理也只是改变流量进入客户端的范围。

加密方式不同,不等于 VLESS 可以省略安全设置

在 VMess 编辑页查看「加密方式」时,通常能看到 auto 等选项。VMess 的协议机制与外层 TLS 是两件事:即使协议本身提供加密,服务端仍可能要求 WebSocket 配合 TLS。删除 TLS 设置并不会让这条节点变成“更直接”的连接,而可能使服务端根本无法接收请求。

常见 VLESS 配置中的 encryption=none 指协议自身不做这一层数据加密,并不代表完整连接没有保护。应继续检查「传输层安全」是否为服务端要求的 TLS 或 REALITY。仅凭一个 none 就打开「跳过证书验证」,既没有解决层级问题,也会削弱 TLS 的身份验证。

服务端已提供完整参数的 VLESS

推荐

在新配置可选、参数齐全的前提下,直接导入服务端给出的 TLS 或 REALITY 组合。保留安全层、SNI 和 flow,不要只复制地址与 UUID。

适合:新建连接,且订阅明确支持当前 v2rayNG 内核

已经稳定运行的 VMess AEAD

保留现有协议与传输配置。没有连接故障时,不需要为了名称更新而手动改成 VLESS;转换协议必须由服务端同步提供支持。

适合:现有订阅以 VMess 为主,日常连接稳定

判断:选择可完整导入的组合,而非只选协议名

如果一条 VLESS 节点缺少 REALITY 公钥等必要信息,先更新订阅或索取完整配置;不要用另一条节点的参数补齐。已经可用的 VMess 可以继续作为对照连接。

额外 ID 怎么填:现代 VMess 通常是 0

打开 VMess 节点编辑页,找到「额外 ID」或 alterId。现代 VMess AEAD 配置使用 0。旧教程中常见的 64 属于历史配置语境,不能当作提升兼容性或速度的通用数值。当前内核对旧认证方式的支持还可能受版本影响。

0
现代 VMess AEAD 的额外 ID
36
带连字符的标准 UUID 字符数
443
常见 TLS 服务端口,非固定要求

这三个数字分别对应认证模式、标识符格式和网络入口,不能互相推导。UUID 长度正确不代表账号有效,端口为 443 也不代表服务器一定启用了 TLS。端口必须以订阅下发值为准,不要因为看到 TLS 就把其他端口改成 443。

WebSocket、TLS 与 REALITY:按服务端组合逐项对照

先在节点编辑页展开「传输方式」和「传输层安全」。WebSocket 节点要检查路径与 Host;TLS 节点要检查服务器名称,即 SNI。服务器地址用于找到入口,SNI 用于握手时声明目标服务器名称,WebSocket Host 则属于 HTTP 请求字段,三者可能相同,也可能按部署要求不同。

两类常见配置的核对方案

VMess + WebSocket + TLS
  • 确认协议为 VMess,额外 ID 符合服务端配置。
  • 传输选择 WebSocket,路径保留开头的斜杠。
  • Host 与 SNI 分别照填,不能仅因名称相似就互换。
  • TLS 证书验证保持启用,域名应符合证书要求。
VLESS + TCP + REALITY
  • 确认安全层为 REALITY,而非普通 TLS。
  • 逐项核对服务器名称、公钥、shortId 与指纹要求。
  • 若服务端要求 Vision,flow 使用 x­tls-rprx-vision 的正确配置值。
  • 不要额外添加另一条 WebSocket 节点的路径或 Host。

以上是两种常见组合,不是所有可用组合的清单;实际参数以服务端配置与内核支持为准。

REALITY 不是在普通 TLS 配置上随意切换一个开关即可使用。客户端持有的公钥必须与服务端私钥匹配;shortId 必须符合服务端允许的取值;服务器名称也要符合服务端要求。shortId 可以按服务端设计为空,因此“空值”本身并不能证明配置错误。

在使用 Vision 的 VLESS 节点中,常见 flow 值是 xtls-rprx-vision。它不是加密算法名称,也不适合复制到任意 WebSocket 配置。VMess 则不能通过填写这个 flow 变成 VLESS + REALITY。遇到不识别的字段,先核对客户端与内核支持,再确认订阅是否针对该客户端生成。

导入后无法连接:先看失败阶段,再看协议

在 v2rayNG 点右上角「+」→「从剪贴板导入」可以导入分享链接。订阅则进入侧栏「订阅分组设置」,新增分组并保存地址,再从主界面菜单执行订阅更新。不同版本可能显示为「更新订阅」或带有更新方式的菜单项。粘贴链接成功只说明客户端完成了解析,不代表账号、服务器和网络都已可用。

  1. 确认导入结果:打开新条目的编辑页,对照协议、端口、UUID、传输和安全层。不要仅看节点备注,备注中的“VLESS”文字不能替代真实协议字段。
  2. 启动后查看日志:在侧栏打开「日志」。若内核尚未启动就报告字段或配置错误,先处理配置兼容问题;此时反复测延迟意义不大。
  3. 区分连接与握手:连接超时先查服务器可达性和端口;证书或握手报错再查时间、SNI、证书与安全层参数。错误文本只是线索,需要结合完整上下文判断。
  4. 最后检查转发范围:若节点能连接而某个应用不通,确认 VPN 权限、分应用代理和路由规则。应用被排除时,更换 VMess 或 VLESS 都不会让它自动进入代理。

能把 VMess 节点直接改成 VLESS 吗?

不能只改客户端协议。先让服务端提供 VLESS 入口与完整参数,再导入为新条目。保留原节点,方便回退与对照。

VLESS 显示 none,是不是忘了开启加密?

先确认 none 属于哪个字段。若是协议 encryption,继续检查 TLS 或 REALITY;若传输层安全也为空,应向提供方确认部署方式,不要自行猜测。

REALITY 导入后一直握手失败,要关证书验证吗?

不要把跳过证书验证当修复手段。先按订阅核对服务器名称、公钥、shortId、指纹及 flow,再确认内核支持和服务端状态。

同一条订阅在桌面能用,安卓为什么不行?

先在 v2rayN 与 v2rayNG 中核对同名节点的实际参数和更新时间,再检查 Android 的 VPN 授权与分应用规则。同名条目不一定来自同一次订阅更新。

选哪个协议:保留稳定节点,用同条件测试决定

仅凭“轻量”不能断言 VLESS 一定更快。实际表现还取决于线路拥塞、服务器负载、传输方式和目标站点。两条不同地区、不同入口的节点即使协议不同,也不能用一次测速证明协议性能高低。

实际维护时,把“协议、传输、安全层”当作一组完整配置。先更新订阅,再核对字段,最后调整路由与分应用代理。这样既能保留可用连接,也能避免把服务端参数错误误判为某个协议本身不可靠。

客户端下载v2rayNG / v2rayN