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

VMess 和 VLESS 有什么区别:Shadowrocket 用户填写参数前要懂的几点

从加密方式、UUID、传输层和对 TLS 的依赖几方面讲清 VMess 与 VLESS 的差别,并列出 Add Server 中最容易填错的字段。

本文速览

VMess 与 VLESS 不能只改 Type 就互相转换。本文面向已经拥有服务商与合法可用配置的用户,说明协议、UUID、Transport 与 TLS 各自负责什么,以及在 Shadowrocket 的 Add Server 中应怎样逐项核对。先按已有配置还原参数,再用连接记录验证;不要把协议名称当成速度或安全性的保证。

VMess 与 VLESS 的核心区别

Shadowrocket(小火箭)支持不同协议的连接配置。VMess 与 VLESS 都可以使用 UUID 作为用户标识,但认证方式、数据处理方式和可用组合并不相同。服务端配置为 VMess 时,客户端必须选择 VMess;服务端配置为 VLESS 时,也必须选择对应类型。相同的地址、端口和 UUID,不代表两种协议可以互换。

核对项目VMessVLESS
身份信息使用 UUID 等认证参数,认证还涉及时间有效性使用 UUID 进行用户识别与认证,不沿用 VMess 的认证机制
协议内数据加密支持协议内数据加密,具体取决于所选加密设置常见配置的 encryption 为 none,不自带同类载荷加密
外层安全保护可叠加 TLS;协议内加密不等于 TLS通常依赖 TLS 或配置指定的其他安全层保护传输
传输方式需匹配服务端的 Transport,例如 TCP 或 WebSocket同样需要匹配 Transport,不能仅凭协议名推断
迁移方法使用服务端提供的完整 VMess 参数使用服务端提供的完整 VLESS 参数,不直接改写旧条目

这里的“VLESS 不自带同类载荷加密”不等于整条连接必然明文。当 VLESS 正确运行在 TLS 之上时,外层 TLS 会保护客户端到对应 TLS 终点之间的数据。反过来,仅看到配置写着 TLS,也还要核对证书验证、名称匹配与实际连接结果。

先分清协议、Transport 与 TLS 三层参数

一次连接可以同时包含 VLESS、WebSocket 和 TLS:VLESS 负责协议处理,WebSocket 是传输封装,TLS 负责外层加密与证书验证。这几个名称不是互斥选项。VMess 也可以与 WebSocket、TLS 组合,不能把 WebSocket 当成 VLESS 独有功能。

3 层
分别核对协议、Transport、TLS,避免只填 Type
443
常见 TLS 端口示例,不是所有配置的固定端口
36 字符
常见 UUID 文本格式:32 个十六进制字符加 4 个连字符

结论:按完整参数组合录入,不按协议名称补默认值

已有配置没有写明 Transport、TLS 或端口时,先核实原始参数;不要自行补成 WebSocket、开启 TLS 或改用 443。每次只修改一个已确认有误的字段,便于判断修正是否有效。

UUID 不是地址,也不是订阅链接。常见写法由五组十六进制字符组成,长度结构为 8-4-4-4-12。复制时应避免首尾空格、换行以及全角符号。即便格式正确,也可能因为服务端没有授权该 UUID 而认证失败,因此格式检查只完成了第一步。

Add Server 中最容易填错的字段

在 Home 点按添加入口进入 Add Server,先选择 Type,再填写相应字段。不同 Type、Transport 与应用内设置会影响后续可见选项;下表按参数含义核对,不要求不同协议的编辑表单完全相同。已有订阅能够正确导入时,先保留导入结果,避免凭印象重建。

字段或参数应核对的内容常见误填
Type与服务端协议一致,区分 VMess 与 VLESS只改 Type,保留另一种协议的参数
Address / Port地址与数字端口分别填写把含路径的完整网址填进地址栏
UUID完整复制用户标识,不附带说明文字复制了显示名称,或漏掉一组字符
VMess 加密设置遵循已有配置与服务端支持范围把 VLESS 的 none 机械套到 VMess
Transport与服务端的 TCP、WebSocket 等设置一致看到 443 就推断一定使用 WebSocket
WebSocket Host / PathHost 使用指定主机名,Path 保留前导斜杠与必要查询参数把 SNI 当成 Path,或漏写路径开头的斜杠
TLS / SNI核对是否启用 TLS,以及应发送的服务器名称把连接 IP 当成证书对应域名
Allow Insecure保持证书验证,优先修正证书、名称或设备时间问题把跳过验证当成长期解决方案

例如,一份已有配置可能要求连接某个 IP,但把 SNI 和 WebSocket Host 都设为 edge.example.com,Path 设为 /tunnel。这三个参数在该示例里有关联,却仍然承担不同职责:Address 找到连接目标,SNI 用于 TLS 握手中的名称指示,Host 用于 WebSocket 的 HTTP 握手。示例域名和路径仅解释字段关系,不是可用连接配置。

从导入到验证:先保留原配置,再检查路由姿态

协议参数正确,并不等于目标请求已经经过该连接。Home 中的选择、Global Routing 的姿态以及 Config 中的规则,共同决定实际流向。排查时应把“连接本身是否可用”与“请求是否命中预期规则”分开处理。

  1. 导入本人有权使用的已有配置或订阅,在 Home 确认条目数量与 Type;手动录入时先完成上一节的字段核对。
  2. 选择需要验证的条目,开启连接;首次使用按系统提示允许添加 VPN 配置。
  3. 确认 Global Routing 当前使用的姿态,避免停在 Direct 却用网页访问结果判断协议是否成功。
  4. 请求一个自己有权访问、可重复检查的目标,并结合应用内连接记录查看目标、策略与错误信息。
  5. 若需更新已有订阅,更新后再次检查当前选中条目。订阅内容变化可能使手工改动被覆盖,重要修改应先留存私密备份。

Config

推荐

按当前启用的配置规则决定流向。协议验证完成后,恢复已核对的 Config,并查看请求实际匹配的策略;只有规则指向当前代理时,该请求才适合用于验证此连接。

适合:已有规则配置的日常使用与恢复验证

Proxy

让交由 Shadowrocket 处理的请求采用代理姿态,可用于临时减少规则分流的干扰。它不是协议修复开关,也不能修复错误的 UUID、Port 或 TLS 参数。

适合:短时区分连接参数问题与规则匹配问题

Direct

采用直连姿态,不适合据此判断所选 VMess 或 VLESS 连接能否正常转发。直连能够打开页面,只能说明该目标在当前直连条件下可访问。

适合:对照直连网络与目标本身的可达性

Global Routing 还包含 Scene,应检查当前场景实际应用的设置,而不是仅凭名称判断流向。Settings → On Demand 用于按条件触发连接,不负责更改 VMess 或 VLESS 的认证参数;出现自动连接现象时检查它,出现认证失败时仍需回到对应条目的参数。

超时、认证失败与证书错误分别怎么查

错误现象只能帮助缩小范围,不能单独证明是哪一个字段有误。先记录原有值,再按“地址可达性 → 安全握手 → 协议认证 → 请求路由”的顺序检查,可以避免一次修改多处后失去判断依据。下列问答描述的是排查方向,不是对所有错误文本的固定解释。

UUID 已经复制正确,为什么还是连接超时?

先在 Home 打开该条目的编辑页,核对 Address 与 Port,再检查当前网络能否到达目标。超时可能发生在认证之前,也可能来自后续握手未完成;此时不要反复生成或替换 UUID。若此前可用,核对已有服务状态与订阅更新结果。

提示证书名称不匹配,要不要开启 Allow Insecure?

先核对 TLS 的服务器名称与 SNI,检查设备日期时间,并确认服务端证书仍然有效。如果 Address 是 IP,证书却签发给域名,应按原始配置填写正确名称。不要用跳过证书验证来代替修正名称或证书问题。

VMess 参数没动,突然出现认证相关错误怎么办?

先检查设备日期与时间是否准确,再核对 UUID 是否仍获授权,以及服务端参数是否变更。VMess 的认证涉及时间有效性,明显的时间偏差可能导致失败;旧配置里的 AlterId 也不能当成任意数字反复尝试,应以当前有效参数为准。

VLESS 已连接,但打开网页仍失败,怎么继续查?

先看应用内连接记录,确认该网页请求是否使用预期策略。若已进入目标连接,再核对 Transport、WebSocket Host 与 Path,以及 TLS 和配置要求的附加参数。系统显示 VPN 已连接,不代表远端认证、DNS 解析和每个目标请求都已经成功。

延迟测试返回数值也不等于所有网页都可访问:不同测试方法覆盖的阶段可能不同,最终仍要验证实际请求。分享排查记录前,删除 UUID、订阅令牌、密码与其他访问凭据;保留 Type、Transport、错误类别及脱敏后的字段关系,通常更有助于定位问题。

选择与迁移:以现有配置和验证结果为准

如果当前 VMess 配置运行正常,不需要仅因 VLESS 名称不同就迁移。VLESS 不自带同类载荷加密,也不能直接推导为“必然更快”:外层安全协议、传输方式、网络质量、服务器负载与目标站点都会影响结果。比较时应保持相同测试目标与接近的网络条件,分别记录是否连通、失败阶段与重复测试的表现,而不是只看一次延迟。

Shadowrocket 是 Apple 平台的闭源商业应用,以 iPhone、iPad 为主要使用设备,唯一获取入口为 App Store。客户端采用一次性买断,客户端购买与连接服务相互独立;本文以用户已有自己的服务商与订阅为前提,不提供、不销售、不推荐连接服务。系统要求与购买适用范围以 App Store 页面标注为准。

App Store 正版核对