Shadowrocket VMess 与 VLESS 区别:手动添加节点时该核对哪些字段

用普通用户能看懂的方式对比 VMess 与 VLESS 的加密方式、UUID、传输层与 TLS 字段,说明在 Add Server 页面填写时各项该对应服务商给出的哪个参数。

本文速览

VMess 与 VLESS 不能只靠切换 Type 相互转换。本文面向已经持有自己服务商参数的 Shadowrocket(小火箭)用户,按协议、身份凭据、传输方式、TLS 四层拆开核对 Add Server;读完可以分清 UUID、Server、Host、SNI 各自负责什么,并按错误发生的位置检查配置,而不是反复猜测开关。

一、VMess 与 VLESS 的区别先看哪一层

先给结论:选择服务端实际提供的协议,不按名称判断快慢。VMess 提供协议层的认证与加密机制;VLESS 本身不提供流量加密,需要结合服务端指定的安全层使用。VLESS 的协议加密字段为 none,不等于整条连接一定明文,也不等于应该关闭 TLS。

手动配置时,把“用什么协议识别用户”“用什么方式承载数据”“怎样保护连接”分开看。WebSocket 是传输方式,TLS 是安全层,两者都不是 VMess 或 VLESS 的同义词。同一个协议可以有不同组合,但客户端必须与服务端逐项一致。

核对层次VMessVLESS
协议身份使用 UUID 标识用户,涉及认证与时间校验使用 UUID 标识用户,不能据此认定与 VMess 通用
协议加密按服务端参数选择对应加密设置,不自行猜测协议加密为 none,连接保护需另外核对
传输方式核对 TCP、WebSocket 等具体要求同样核对实际传输方式及其附加字段
安全层可能另用 TLS,以给定参数为准核对 TLS 或其他明确指定且当前应用支持的安全设置

因此,不存在“把 VMess 的 UUID 复制过去,再把 Type 改成 VLESS 就完成升级”的通用步骤。即使两组参数恰好使用相同 UUID,也必须确认服务端确实存在对应的协议入口、端口和传输设置。

二、进入 Add Server 前,先准备完整参数

在 Home 点右上角的添加按钮进入 Add Server,先选 Type,再填写该类型显示的项目。不同 Type 或传输选项会改变后续字段;本文使用 UUID、SNI 等协议名称解释对应关系,实际输入项的拼写与位置以当前应用页面为准。

  1. 确认参数属于同一个入口。把协议、Server、Port、UUID、传输方式、安全层放在同一份记录中,不要混用旧消息里的端口与新配置里的域名。
  2. 区分单条配置和 Subscribe 地址。订阅地址用于获取配置集合,不是 Server,也不是 UUID。已经通过 Subscribe 导入的条目,优先对照其现有详情,不另建一个缺少附加参数的副本。
  3. 保留原配置。手动排查前记录原值;必要时新建测试条目,每次只改一项。后续订阅更新可能重新写入服务商管理的字段,不要把临时修改当成永久修复。
  4. 准备附加参数。若使用 WebSocket,另备 Host 与 Path;若使用 TLS,另备服务器名称与证书要求。VLESS 若明确给出 Flow,也应一起核对,不能随意补填。

三、Server、Port 与 UUID 分别怎样填写

Server 表示要连接的服务器地址,一般是域名或 IP 地址,不包含 https://、网页路径或查询参数。Port 是服务端实际监听的端口。填写端口 443 并不会自动开启 TLS,填写域名也不会自动生成正确的 SNI。

128 bit
UUID 的标识长度;常见文本格式为 8-4-4-4-12
1–65535
目标服务端口的数值范围,具体值必须与给定参数一致
443
常见 TLS 服务端口,但端口号本身不代表已启用 TLS

UUID 是协议身份凭据,不是备注名称,也不是 Apple 账号。复制时保留连字符,去掉首尾空格与意外换行;不要把参数中整个 id=... 片段连同键名一起填入。即使格式正确,也不能证明服务端仍然接受该凭据。

四、WebSocket 的 Host、Path 与 TLS 的 SNI 不要混填

这几项经常都是域名或短字符串,却作用在不同阶段。Server 决定连接目的地;SNI 在 TLS 握手中指明服务器名称;WebSocket 的 Host 与 Path 用于 HTTP 升级请求和服务端路由。它们可以相同,也可以不同,不能从 Server 自动推导全部取值。

两组字段分别核对:传输方式与安全层

WebSocket 传输字段
  • 先确认传输方式确实要求 WebSocket,而不是仅因参数里出现域名就选择它。
  • Host 按给定值填写,不附带协议前缀;若明确带端口,不擅自删去。
  • Path 保留开头的 /、大小写与查询参数,不把完整网页地址填进去。
  • 例如 /ws 与 /WS 可能对应不同路由,不能视为等价。
TLS 安全字段
  • 按参数确认是否启用 TLS,不能仅根据 Port 判断。
  • SNI 通常填写服务器名称,不带 https:// 或路径。
  • 核对证书覆盖的名称、有效期与设备时间,不用忽略证书错误代替排错。
  • 若提供 ALPN 等附加项,按原值核对;未提供时不要照抄其他条目的值。

连接地址、TLS 服务器名称和 WebSocket Host 是三种角色;只在原参数要求相同时才填写相同值。

以下是字段关系示意,不是可连接的配置,也不表示真实服务端支持这些值。实际填写必须使用自己现有入口的完整参数;没有提供的字段,不从本例补齐。

Type: VLESS
Server: edge.example.com
Port: 443
UUID: 使用已有入口提供的完整 UUID
Transport: WebSocket
Host: web.example.com
Path: /ws
TLS: enabled
SNI: web.example.com

五、TLS 开关如何判断:按入口要求,不按协议名称

VMess 可以结合 TLS,VLESS 也不能仅凭协议名称决定 TLS 开关。这里比较的是同一应用里的安全层设置方式,不是给两种协议排优先级。推荐项针对“现有参数明确启用 TLS”的情况;如果服务端明确采用其他安全方案,应核对该方案所需字段与当前应用支持情况。

原参数要求 TLS:保留 TLS 与名称校验

推荐

启用对应的 TLS 设置,逐项核对 SNI、证书与附加参数。遇到名称不匹配时先查参数,不通过关闭校验绕过问题。

适合:已有入口明确给出 TLS 与服务器名称的配置

原参数不使用 TLS:核对实际安全方案

不要强行打开 TLS,也不要把“不使用 TLS”理解为所有保护都可省略。尤其是 VLESS,需要确认整条连接如何获得加密保护以及相关字段是否完整。

适合:已有入口明确说明安全层组合且参数齐全的配置

判断方法:先找原参数中的安全层,再检查加密字段

看到 VLESS 的 none 时,不要关闭 TLS;先确认它描述的是协议加密还是连接安全层,再修改对应设置。

六、保存后怎样验证,避免把分流问题当成协议问题

保存条目后,回到 Home 选择刚核对的配置,再进行连接测试。延迟有数值只说明对应测试获得了响应,不能证明 UUID、WebSocket 路由、TLS 与目标网站访问全部正常。下面的现象是排查分类,不是某个错误提示的唯一解释。

  1. 先确认确实使用该条目。核对 Home 当前选择,避免编辑的是新条目,连接时仍使用另一个旧条目。
  2. 再确认 Global Routing。Direct 不能用于验证代理入口;在 Config 下,目标可能被规则送往直连。可短暂使用 Proxy 排除规则选择的影响,测试后恢复原设置。
  3. 记录失败阶段。连接超时先查 Server、Port 与网络可达性;TLS 失败先查安全层、SNI、证书和时间;连接建立后仍失败,再查 UUID、传输字段及服务端状态。
  4. 最后回查规则与 DNS。若 Proxy 可访问、Config 不可访问,再检查当前 Config 中命中的规则及策略,不继续修改协议凭据。

规则中的 DOMAIN-SUFFIX,example.com,DIRECT 会将匹配域名交给 DIRECT;FINAL 负责未命中前面规则时的最终策略。此时访问结果反映的是规则路径,不一定是刚添加的 VMess 或 VLESS 条目。不要把临时验证用的全局选择当作长期分流配置。

七、手动添加 VMess 与 VLESS 的常见问题

只有 UUID 和域名,能直接添加吗?

不能据此完整还原。至少还需确认 Type、Port、传输方式与安全层;WebSocket 可能另需 Host 和 Path。先向自己现有服务商核对缺失字段,不用常见端口或默认路径代替实际值。

把 VMess 改成 VLESS,为什么马上不能连接?

两种协议的处理方式不同,服务端也必须有对应入口。回到 Home 编辑该条目,恢复原 Type 与原参数;需要使用 VLESS 时,应另取该入口的完整参数,而不是只复用 UUID。

VLESS 显示 none,是不是设置错了?

若它表示 VLESS 协议加密,none 符合该协议的设计。继续检查 TLS 或其他指定安全层,不能用这个值推断整条连接没有加密,也不要把它当作 TLS 关闭指令。

订阅导入能用,手动添加却不行,先看什么?

在 Home 分别打开两个条目的详情,依次比对 Type、Server、Port、UUID、传输、安全层及附加字段。重点检查手填时漏掉的 Path、SNI 或 Flow;不必先重置 Settings,也不要将完整凭据发到公开讨论区。

端口是 443,还需要核对 TLS 吗?

需要。443 只是端口号,不会替客户端决定协议。返回条目编辑页面,按原参数检查 TLS 开关与服务器名称;若提示证书问题,先核对 SNI 和设备时间,不把关闭校验作为常规解决办法。

完成一次核对后,保留“原值、修改项、结果”三项记录。只要能确认失败发生在地址连接、TLS 握手、协议认证还是规则选择阶段,下一步就能针对该层处理,而不需要同时更换协议、端口和传输方式。

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