VMess 与 VLESS 区别:在 Shadowrocket 里填写 UUID、加密与传输方式的要点

只讲普通用户用得上的差别:两种协议各自的加密处理、UUID 与 alterId,以及 TLS、传输方式在 Shadowrocket 中对应哪些字段。

本文速览

本文适合已经持有服务参数或订阅、准备在 Shadowrocket 中核对 VMess 与 VLESS 设置的用户。先分清协议、身份凭据、传输方式与 TLS 四个层次,再按 Home → Add Server 的填写顺序检查字段。读完可以判断 UUID、alterId、加密选项、Host 与 SNI 分别解决什么问题,并按错误发生的阶段定位连接故障。

一、VMess 与 VLESS 的区别:协议加密不等于 TLS

Shadowrocket(小火箭)在服务器条目中保存连接参数。VMess 与 VLESS 是协议类型,不是 Global Routing 的分流姿态,也不是 TLS 的开关名称。选择哪种类型首先取决于已有服务端的配置,不能只改客户端的 Type,就把同一条服务从 VMess 转成 VLESS。

VMess 提供协议层的认证与可选的数据加密机制,常见加密选项包括 auto、aes-128-gcm 与 chacha20-poly1305。VLESS 本身不提供通用的数据加密层;常规配置中的 encryption=none 描述的是这一层,不代表外层 TLS 也应关闭。两种协议都需要按服务端要求配置传输与安全层。

检查项目VMessVLESS
身份凭据通常使用 UUID;必须与服务端一致通常使用 UUID;必须与服务端一致
协议层加密可配置加密方式;依服务参数填写常规 encryption 值为 none,不在这一层提供数据加密
alterId历史兼容参数;现代 VMess AEAD 配置通常为 0不使用该参数
TLS 与传输独立核对,不能从协议名推断独立核对,不能从协议名推断

VLESS 的 flow 也不是 VMess 加密方式的替代字段。若已有参数明确给出 flow,应确认所选类型、传输与安全配置是否支持该组合,按原值填写;普通 VLESS 配置不要自行添加。协议名相同,并不意味着所有扩展组合都可以互换。

二、按 Add Server 顺序核对 Address、Port 与 UUID

在 Home 点击右上角添加入口,进入 Add Server,先在 Type 选择 VMess 或 VLESS,再填写其余字段。不同类型显示的字段不同;界面标签也可能随应用语言与版本调整。应核对字段含义,不要为了找到一个名称相近的选项而改动协议类型。

  1. Address:填写已有服务提供的域名或 IP 地址。常见独立地址字段不包含 https://、路径或订阅查询参数;不要把完整订阅链接粘到这里。
  2. Port:填写服务端实际监听的端口。示例中的 443 只是演示值,不能据此认定所有 TLS 服务都使用同一个端口。
  3. UUID:逐字符复制已有凭据,去掉首尾空格和换行。外观符合 UUID 格式,只能说明格式可能正确,不代表服务端已授权这个身份。
  4. 协议专属字段:VMess 核对加密选项与 alterId;VLESS 核对已有参数中的 encryption、flow 等内容。没有对应字段时,先确认类型和支持情况,而不是把值塞入备注。
  5. 传输与 TLS:接着检查 Transport、TLS 以及相应子项,全部核对完再保存。备注用于区分条目,不参与服务器认证。
128 bit
UUID 的位数;常见文本写法为 36 个字符,含连字符
0
现代 VMess AEAD 配置中常见的 alterId 值
443
TLS 常见端口示例;实际必须使用服务端指定值

例如 123e4567-e89b-42d3-a456-426614174000 只用于展示 UUID 的文本结构,不是可用凭据。UUID 也不能与订阅 URL 中的 token 混用:前者是服务器认证信息,后者可能是获取整份订阅的凭据。排障时不要公开其中任何一种真实值。

三、VMess 的 alterId 与加密选项怎么填

alterId 是 VMess 历史配置中的兼容参数;部分分享数据用 aid 表示同一项。现代 VMess AEAD 配置通常使用 0。这里的 0 不表示关闭身份认证,也不等于关闭 TLS。若收到的旧参数含非零值,应先向原有服务方确认兼容要求,不要把它当作提升速度的数字随意增减。

VMess 认证还与时间有关。若参数完全一致却持续认证失败,可检查 Apple 设备的系统日期与时间是否准确,并使用系统允许的自动时间设置。时间校正只能排除这一类因素,不能修复错误的 UUID、失效的授权或无法到达的服务器端口。

四、Transport、TLS、Host 与 SNI 分别对应什么

Transport 决定协议数据如何承载,例如 TCP 或 WebSocket;TLS 负责安全连接与证书校验。Address 是建立网络连接的目的地址,SNI 是 TLS 握手中使用的服务器名称,WebSocket 的 Host 是 HTTP 请求头字段。它们在某些配置中相同,在另一些配置中不同,不能互相代填。

字段或参数填写依据错填后的常见表现
Transport与服务端实际传输方式一致,如 WebSocket端口可达,但无法建立后续协议连接
Path例如 /edge;保留开头斜杠、大小写及必要查询参数WebSocket 握手失败,可能收到 HTTP 404
Host已有服务要求的 HTTP Host,例如 edge.example.com请求进入错误站点,可能出现 403 或 404
TLS / SNI按服务要求启用 TLS,填写规定的服务器名称证书名称不匹配,或 TLS 握手失败

表中的域名与路径均为文本示例,不是连接入口。HTTP 状态码也只是排查线索,不能单凭一个 403 或 404 就确认是哪一项错误;反向代理的配置也可能产生相同结果。需要将服务端要求的 Host、Path 与客户端当前值逐项对照。

按已有参数启用 TLS,并校验证书

推荐

服务明确要求 TLS 时,保持 TLS 开启,填写正确的 SNI,并保留证书校验。证书错误应先检查设备时间、域名与服务端证书,而不是直接跳过验证。

适合:已有参数明确使用 TLS 的 VMess 或 VLESS 连接

按已有参数不启用 TLS

仅在服务端明确采用非 TLS 传输时保持关闭。客户端单方面开启 TLS 会导致握手不匹配;VLESS 本身不提供数据加密,不能把普通非 TLS 连接当作等价的加密连接。

适合:服务方明确说明的受控测试或其他既定安全封装场景

结论:TLS 报错时先查名称,不先改 UUID

若错误明确发生在证书校验阶段,先对照 SNI、证书覆盖的域名和设备时间;保持 UUID 与传输参数不变,修正后再测试,这样才能判断是哪一项产生影响。

五、保存后如何验证:把连接故障与分流故障分开

保存服务器只完成了参数录入,不表示该条目已经用于当前连接。在 Home 点选目标服务器,将其设为当前使用的条目,再打开连接开关;首次连接时按系统提示允许添加 VPN 配置。随后运行 Connectivity Test,并记录所测条目、Global Routing 姿态以及失败提示。

  1. 先看基本可达性:若提示超时,先核对 Address、Port 和当前网络。端口不通时,反复更换 UUID 或 WebSocket Path 通常不能解决问题。
  2. 再看安全与认证:证书错误检查 TLS 与 SNI;认证失败检查 UUID、VMess 的 alterId 和设备时间。错误名称以实际显示为准。
  3. 再看应用层传输:若 TCP 能建立但 WebSocket 连接失败,对照 Transport、Host 与 Path;仅有延迟数值不能证明整个代理链路可用。
  4. 最后检查路由:Global Routing 的 Direct 不会用代理验证目标流量;Config 按配置规则处理连接。需要排除规则影响时,可临时用 Proxy 做同一目标的对照测试,结束后恢复原姿态。

在 Config 姿态下,DOMAIN-SUFFIX、GEOIP、IP-CIDR 与 FINAL 等规则决定连接交给哪种策略,不能修复协议认证失败。例如 DOMAIN-SUFFIX,example.com,PROXY 表示匹配该域名后缀后交给 PROXY 策略;如果该策略实际选择的不是刚编辑的条目,修改结果就没有被当前请求使用。

若需要手动控制测试时机,可同时检查 Settings → On Demand 的现有配置,避免自动连接行为打断观察。排障期间一次只改变一个字段,并在切换服务器或关键参数后重新连接;不要同时修改协议、TLS、规则与 DNS,否则即使恢复正常,也难以确认原因。

六、UUID、订阅导入与协议切换常见问题

同一个 UUID 能从 VMess 直接改成 VLESS 吗?

不能仅凭 UUID 相同就切换。先确认服务端确实提供 VLESS 入口,再在 Home → Add Server 新建对应类型,填入该入口的地址、端口、UUID、传输与安全参数。保留原条目便于对照,不要直接覆盖唯一可用的配置。

VLESS 的 encryption 是 none,为什么还要开 TLS?

两者处于不同层次。encryption=none 表示 VLESS 本身没有提供这层数据加密;服务要求 TLS 时,仍应在条目中启用 TLS,并填写正确的服务器名称。不要根据 none 自动关闭 TLS。

订阅里已经有条目,还需要逐个手填吗?

通常不需要。已有订阅应在 Home 的添加入口选择 Subscribe,将完整订阅地址填入 URL,保存并更新。打开导入的服务器条目核对字段即可。订阅地址负责获取条目,不是 VMess 或 VLESS 的 Address。

刚改好 Host,更新订阅后为什么又变回去了?

订阅条目由订阅内容维护,更新可能覆盖本地修改。先保存需要对照的参数,再为排障单独建立手动测试条目;长期修正应核对原订阅内容。不要把本地临时修改视为订阅源已经更新。

两种协议都能导入,应该保留哪一种?

先分别验证认证、TLS 和传输参数,再在同一网络、同一目标与相同分流姿态下测试。保留与已有服务配置匹配且测试通过的条目;协议名称本身不能保证延迟或吞吐表现,也不能替代实际连通性检查。

本文以用户已有自己的服务与订阅为前提,只解释字段与操作。提交排障信息时,可提供协议类型、传输方式、TLS 是否启用、错误阶段以及脱敏后的字段结构;UUID、完整订阅 URL 和其他认证信息应保持私密。

App Store 正版核验