本文速览

VMess 与 VLESS 是不同协议,不是同一个节点上的两档速度设置。两者都常用 UUID 标识用户,但加密机制与服务端配置不同。本文适合已经有服务商参数、准备在 Shadowrocket 的 Add Server 中手动填写或核对导入结果的用户:先分清协议、传输与 TLS 三层,再按字段检查,最后用固定条件测试,避免把参数错误误判为协议性能问题。

一、VMess 与 VLESS 的核心区别

先给结论:协议类型必须与服务端一致。VMess 服务端不能通过把客户端 Type 改成 VLESS 来连接,反过来也一样。即使地址、端口和 UUID 完全相同,协议握手格式不同仍会导致失败。已有订阅从你的服务商处获取,手动输入时也应以同一份完整参数为依据。

核对项VMessVLESS
用户标识通常使用 UUID,与服务端用户配置对应通常使用 UUID,与服务端用户配置对应
协议自身的加密有协议层认证与数据加密机制,具体取决于所选加密方式基础协议不内置数据加密,需结合外层安全传输判断安全性
传输搭配按服务端配置使用 TCP、WebSocket 等传输按服务端配置使用 TCP、WebSocket 等传输
TLS与协议内的加密设置是两项不同配置常用于提供外层传输保护,不能因使用 UUID 就省略
修改协议类型必须同时有对应的服务端支持,不能只改客户端 Type

“VLESS 更轻量”描述的是协议设计取舍,并不等于任何网络下都更快。实际体验还受服务器负载、线路拥塞、传输方式及本地网络影响。比较不同地址的两个节点,不能单凭测速结果推导 VMess 与 VLESS 的普遍优劣。

二、UUID、加密方式与 TLS 分别负责什么

UUID 用于标识用户,不是服务器地址,也不是 TLS 证书。它通常写成由连字符分隔的十六进制字符串。复制时要保留完整内容,不混入空格或换行;同一个 UUID 能否用于不同协议,由服务端是否配置了对应用户决定,不能由字符串格式推断。

VMess 的加密选项与 TLS 开关属于不同层。VMess 协议内可以采用 AES-128-GCM、ChaCha20-Poly1305 等方式;实际应按服务端参数及应用提供的选项核对。看到 TLS 已启用,不代表可以随意改动 VMess 的加密设置。

32
标准 UUID 的十六进制字符数,不计连字符
443
常见 TLS 端口示例,不是节点固定端口
3 层
分开核对:协议、传输方式、TLS

判断顺序:先确认安全传输,再判断是否可用

若参数是 VLESS 且没有启用 TLS,先向服务商核实是否有明确的外层安全传输设计;不要把“UUID 已填”或“端口为 443”当成连接已加密的证据。

TLS 还涉及服务器身份校验。连接地址可以是 IP,而用于证书校验的 Server Name 是域名,两者不必相同。不要为消除报错而直接跳过证书校验;应先核对 Server Name、证书域名及设备日期时间。VMess 的认证也对时间同步有要求,设备时间明显偏差时,应先恢复系统自动时间再重试。

三、在 Home → Add Server 中逐项填写

从 Home 进入 Add Server,先确定 Type,再填写地址和认证信息。不同协议或传输方式会显示不同字段;没有显示的项目不应借用其他字段硬填。界面布局可能随应用调整,核对重点是字段含义与服务端要求一致,而不是照搬某张旧截图的位置。

  1. Type:选择服务商明确提供的 VMess 或 VLESS。导入后也要查看类型,不能只看备注名称。
  2. Address 与 Port:Address 只填连接用的主机名或 IP,不把整条分享链接填进去。Port 使用服务商给出的数值;例如参数写 8443,就不能因为启用了 TLS 改成 443。
  3. UUID:完整复制用户标识。VMess 若另有 Alter ID 参数,按实际资料填写;现代 VMess AEAD 配置通常使用 0,VLESS 不使用 VMess 的 Alter ID 机制。
  4. VMess 加密设置:核对服务商指定的方式。不要把协议的加密选项与 TLS、WebSocket 混成同一个开关。
  5. 传输设置:按提供的信息选择 TCP 或 WebSocket 等方式。使用 WebSocket 时,再检查 Host 与 Path;Path 中的前导斜杠也属于参数。
  6. TLS 与 Server Name:确认是否启用、校验域名是什么,以及是否存在额外要求。若提供了 Flow 等扩展参数,也必须确认当前所选配置支持并正确对应。

四、TCP 与 WebSocket:把传输参数分开核对

VMess、VLESS 描述代理协议,TCP、WebSocket 描述承载方式,TLS 描述安全传输的一部分。比如“VLESS + WebSocket + TLS”是一组组合关系,不是三个可随意互换的协议选项。服务端使用 WebSocket 时,只填对 UUID 和 TLS 仍不足以完成连接。

两种常见传输组合的检查重点

TCP + TLS
  • 核对 Address、Port 与 UUID。
  • 确认传输选择与服务端一致。
  • 核对 TLS 的 Server Name 和证书校验。
  • 若服务商另有扩展参数,逐项确认支持情况。
WebSocket + TLS
  • 先完成地址、端口、UUID 与 TLS 核对。
  • 再逐字检查 WebSocket 的 Host。
  • 保留 Path 的大小写、斜杠及必要查询参数。
  • 区分连接地址、Host 与 Server Name 的用途。

不要默认 Address、Host 与 Server Name 三者相同;它们分别参与连接目标、WebSocket 请求和 TLS 身份校验。

例如连接地址是 edge.example.com,WebSocket Host 是 ws.example.com,Server Name 是 tls.example.com,这三个字段可以在特定部署中各不相同。是否如此必须由实际配置决定。将它们全部替换为连接 IP,可能造成 TLS 校验失败,或请求没有被转发到正确的服务。

五、连接测试:先排除 Global Routing 的影响

保存节点后,在 Home 选中它,再核对 Global Routing。该设置控制流量如何分配,不会把 VMess 转成 VLESS。Config 是按配置规则处理,Proxy 用于将进入代理处理范围的流量交给代理;Direct 则用于直连。Scene 按已设置的场景处理,不能仅凭名称判断当前实际出口。

Config:恢复日常规则

推荐

节点单独验证可用后,用 Config 检查实际规则命中。规则可以指定 PROXY、DIRECT 或 REJECT,不能假设所有请求都经过当前节点。

适合:已有配置下的日常使用与分流核对

Proxy:临时隔离规则因素

测试时临时选择 Proxy,并固定同一个节点与测试目标,减少规则导致直连的干扰。测试结束后恢复原有 Global Routing 设置。

适合:确认问题来自节点连接还是分流规则

Direct:检查本地网络基线

用于核对本地网络能否直接访问原本可直连的目标。此时网页可打开,不能证明 VMess 或 VLESS 节点正常。

适合:排除 Wi-Fi、蜂窝网络及本地连接故障

测试时一次只改变一个条件。先固定网络、节点和目标,记录是否超时、是否出现 TLS 错误、是否只有特定网站失败,再更换本地网络复测。端口可达或延迟有数值,只说明相应测试得到响应,不等于代理认证、传输路径及完整请求都成功。

六、导入、更新与常见填写问题

已有订阅优先按服务商提供的导入方式添加,再检查导入后的 Type、传输和 TLS 信息。订阅更新可能覆盖节点参数,因此手动修改前应保留原始资料。更新后出现异常时,先比较地址、端口与传输参数是否改变,不要连续修改多项后再尝试回忆原值。

有 UUID,为什么还是连不上?

UUID 只解决用户标识的一部分问题。回到 Home → Add Server 对应的节点编辑页,按 Type、Address、Port、UUID、传输、TLS 的顺序核对。尤其不要遗漏 WebSocket 的 Host、Path 或 TLS 的 Server Name。

把 VMess 改成 VLESS 会不会更快?

不能直接改。先从你的服务商处获取对应的 VLESS 完整参数,单独保存为另一条记录。只有在服务端、线路和测试条件可比较时,测试结果才有参考意义;不同线路的差异不能归因于协议名称。

订阅更新以后,之前修改的 Path 不见了怎么办?

先确认是否由订阅重新下发了参数,向服务商核实最新值。确需临时验证时,可将参数单独保存为手动记录再测试,避免将订阅管理的记录当成长期手动配置。不要反复填回未经确认的旧 Path。

开启 On Demand 能修复协议错误吗?

不能。Settings → On Demand 管理按需连接条件,不修正 UUID、TLS 或传输字段。先验证手动连接可用,再核对 On Demand;测试期间保持触发条件稳定,避免自动连接状态变化干扰判断。

最终检查可以收敛为一句话:先让协议类型与服务端对应,再让传输与 TLS 参数逐项对应,最后确认请求确实走向预期策略。若仍无法定位,向服务商提供已遮盖凭据的字段信息、网络类型和错误现象,比只描述“VMess 慢”或“VLESS 不通”更有助于排查。更多操作入口可查看节点管理与Global Routing 使用说明。