Shadowrocket VMess 与 VLESS 区别:加密方式、alterId 与 flow 字段怎么理解

对比 VMess 与 VLESS 在加密、身份校验和传输层上的差异,说明 Add Server 里 UUID、alterId、flow、TLS 等字段的含义,以及参数应与服务商提供的保持一致。

本文速览

本文适合已经拥有自己的服务商与连接参数、需要在 Shadowrocket(小火箭)中核对 VMess 或 VLESS 配置的用户。先区分协议、身份凭据和外层传输,再检查 UUID、alterId、flow 与 TLS;遇到连接失败时,按地址端口、认证、传输和路由的顺序定位,不凭协议名称判断速度或稳定性。

VMess 与 VLESS:先区分协议层和传输层

VMess 与 VLESS 都需要客户端与服务端使用相互匹配的协议。两者经常都使用 UUID 作为用户身份凭据,但报文结构和认证方式不同。把 Add Server 中的类型从 VMess 改成 VLESS,并不等于完成迁移;服务端也必须提供对应配置。

VMess 具有协议层的数据加密机制,具体方式取决于双方配置。VLESS 本身不提供载荷加密,其安全性需要结合 TLS 等外层保护判断。因此,看到 VLESS 的 encryption 为 none,不能直接推断整个连接是明文;同样,看到 VMess 也不能忽略服务器身份验证。

核对项VMessVLESS
身份凭据通常使用 UUID,必须与服务端用户配置一致。通常使用 UUID,不能仅凭与 VMess 相同的 UUID 判断可互换。
协议层加密具有可配置的数据加密机制,不能与外层 TLS 混为一项。不提供载荷加密,常见配置中的 encryption 为 none。
alterId历史兼容字段;现代 VMess AEAD 配置通常为 0。不使用此字段。
flow不使用 VLESS 的此类流程参数。部分组合使用,例如 xtls-rprx-vision,必须匹配服务端。
外层配置仍需核对 TCP、WebSocket、TLS 等实际参数。同样需要核对传输方式与外层安全参数。

协议名称只描述连接栈中的一层。完整连接还包括服务器地址、监听端口、传输方式和安全层。即使两条配置都写着 VLESS,若其中一条采用不同的传输方式或服务器名称,也不能把字段交叉套用。

UUID 与 alterId:认证信息不能靠试填

UUID 用来标识服务端授权的用户,不是服务器地址,也不是订阅地址里的访问令牌。复制时要检查是否多出空格、换行或引号。即使 UUID 格式正确,只要服务端没有对应用户,认证仍然无法完成。

36 字符
常见 UUID 文本长度,包含 4 个连字符;格式为 8-4-4-4-12。
0
现代 VMess AEAD 配置通常使用的 alterId 值。
443
TLS 常见端口示例,不是 VMess 或 VLESS 的固定端口。

alterId 属于 VMess 的历史配置概念,不是“备用线路数量”,也不是数值越大越安全。现代 VMess AEAD 配置通常使用 0;旧资料里的非零数值不能直接应用到当前服务端。如果现有参数中仍有非零值,应向原配置提供方确认兼容要求,而不是在多个数字之间试填。

VMess 的认证还与时间有关。若近期突然出现认证失败,可以检查 iPhone 或 iPad 的系统设置 → 通用 → 日期与时间,确认时间及时区正常。校准时间只是排查步骤,不能替代对 UUID、服务端状态和协议类型的核验。

结论:先确认凭据来源,再检查字段格式

以同一份有效配置为核对基准;发现 UUID 或 alterId 不一致时,先重新导入或确认原始参数,不要把格式正确当作认证有效。

flow 与 TLS:分别核对流程和服务器身份

flow 是部分 VLESS 组合中的流程参数,不是速度档位。常见值 xtls-rprx-vision 需要客户端支持,并与服务端的传输和安全配置配套。服务端没有要求时,不应只因为界面存在该选项就主动填写。

TLS 负责加密外层连接并验证服务器身份。连接地址可能是域名,也可能是 IP 地址;TLS 中使用的服务器名称通常参与 SNI 和证书校验。连接地址、TLS 服务器名称与 WebSocket 的 Host 可以相同,也可能因服务端部署而不同,必须分别核对。

Add Server 核对步骤:一次只验证一组参数

在 Shadowrocket 的 Home 页面进入 Add Server 后,先选择与已有参数一致的协议类型,再填写字段。不同协议与所选传输方式会影响可见选项;下列顺序用于核验逻辑,不要求所有字段同时出现在同一屏。

  1. 地址与端口:填写原始服务器地址与监听端口。例如 example.com:443 只是假值示意;不能因为采用 TLS,就把原来的端口自动改成 443。
  2. 协议与凭据:确认是 VMess 还是 VLESS,粘贴 UUID。VMess 再检查加密选项与 alterId;VLESS 不需要借用 VMess 的 alterId。
  3. 传输方式:按原配置选择 TCP 或 WebSocket 等实际方式;存在 Host、path 等附加参数时逐项核对,保留路径开头的斜杠。
  4. 安全参数:核对 TLS、服务器名称与证书校验;VLESS 如有 flow,再确认其值和配套条件。
  5. 保存与测试:回到 Home 选择该条配置,确认 VPN 配置授权已完成,再连接并访问实际目标。记录失败阶段,避免同时修改多个字段。

如果使用自己已有的订阅,优先保留导入后的原始字段。订阅更新可能重新生成条目并覆盖手动修改;需要对照排查时,应先记录差异。订阅地址用于获取配置集合,并不是 Add Server 的服务器地址,不能把整条订阅 URL 填入服务器地址栏。

Home 主要处理连接选择与状态,Config 用于配置文件管理,Settings 用于应用设置。订阅条目更新与 Config 中规则文件的更新是不同操作:前者可能更换服务器参数,后者改变流量匹配和策略,不能相互代替。

连接测试与路由姿态:避免把规则问题当成协议问题

Home → Connectivity Test 提供连通性检查线索,但一次延迟结果不等于业务可用,也不能直接比较 VMess 与 VLESS 的吞吐能力。测试方法可能只覆盖连接的一部分,应结合实际网页或目标服务验证。

Config:按现有规则验证

推荐

在 Home → Global Routing 选择 Config 后,流量按当前配置规则处理。确认目标实际命中代理策略,再判断该连接是否正常。

适合:已有正确规则的日常使用与排查后的复核。

Proxy:隔离常规规则影响

临时切换为 Proxy,可以减少常规分流规则对测试的干扰。仍需确认当前选中的服务器,并通过实际访问验证,而非只看连接开关。

适合:短时区分服务器参数问题与规则选择问题。

Direct:检查基础网络

Direct 使用直接连接,不适合据此判断 VMess 或 VLESS 是否工作。它可以辅助确认当前网络是否具备基础连通性。

适合:对照基础网络状态,不用于验证代理协议认证。

Global Routing 中的 Scene 用于按所设场景决定路由行为,不是第三种代理协议。若希望保持测试条件固定,应先确认当前路由姿态。若断开后连接又自动建立,还应检查 Settings → On Demand;自动连接行为与 UUID、alterId 和 flow 无关。

结论:只改变路由姿态,不同时改服务器字段

同一条配置在 Proxy 下可访问、在 Config 下失败时,优先检查规则命中与策略目标;两种姿态都失败时,再沿地址、TLS、认证和传输参数逐层排查。

常见问题:按失败现象定位字段

UUID 一样,为什么 VMess 改成 VLESS 就不通?

UUID 只是身份凭据的一部分,不决定服务器接受哪种协议。恢复原类型,向原配置提供方确认是否存在独立的 VLESS 入口,再核对它的端口、TLS 和 flow;不能仅修改类型来转换协议。

VLESS 显示 none,是不是应该改成某种加密?

先辨认 none 所在字段。若它表示 VLESS 协议层的 encryption,这是常见设置;应继续核对 TLS 等外层保护,不要把 VMess 的加密值搬入 VLESS。若原配置使用其他安全机制,也要完整保留其参数。

延迟有结果,但打开网页一直失败,先查什么?

先确认当前服务器与 Global Routing,再实际访问目标。若 TLS 报错,检查服务器名称、设备时间和证书;若只有特定网站失败,检查规则与 DNS。不要仅凭延迟结果把 UUID 或 flow 排除在排查范围之外。

订阅更新后手动填的 flow 又变了,怎么办?

记录更新前后的字段与条目名称,确认自己修改的是不是同一条配置。以订阅最新内容和原配置提供方说明为基准;需要单独测试时保留独立副本,避免下一次更新再次覆盖测试参数。

VMess 与 VLESS 的实际表现还取决于网络路径、服务器负载、外层传输和目标服务。没有相同条件下的测量,不能给出某协议固定更快的结论。排查时保留错误提示和字段差异即可,不应公开完整 UUID、订阅令牌或其他访问凭据。

App Store 正版核对查看购买与恢复说明