本文速览

VMess 与 VLESS 是不同的代理协议,不能通过修改 Type 相互转换。本文面向已经有服务商与订阅的 Shadowrocket(小火箭)用户,按协议、身份凭据、传输层和 TLS 四层拆解参数,再给出导入与排查顺序。读完后可以判断哪些字段需要逐字核对,哪些设置不能凭协议名称自行推断。

一、VMess 与 VLESS 的核心区别是协议层加密

先给结论:VMess 具有协议自身的认证与加密机制;VLESS 将认证与传输保护分开,协议本身不负责载荷加密。VLESS 连接的安全性需要结合实际采用的 TLS 等保护方式判断,不能把“VLESS 本身不加密”理解为“所有 VLESS 连接都以明文传输”。

反过来,VMess 已有协议层加密,也不代表它的 TLS 开关可以随意关闭。服务端如果要求 TLS,客户端仍需按要求建立 TLS 连接。两层设置处理的是不同问题,必须与服务端配置对应。

比较项VMessVLESS
协议层保护具有协议自身的认证与加密机制进行身份认证,不自行提供载荷加密
身份凭据通常使用 UUID,必须与服务端对应通常使用 UUID,不能因为格式相同就跨协议复用
传输组合按服务端要求搭配 TCP、WebSocket 等传输同样需要核对实际传输及相关参数
TLS 设置是否启用、验证哪个名称,由服务端配置决定不能仅凭协议名称推断 TLS 及其他安全选项
能否直接互换不能。切换 Type 后还需要有对应协议的完整服务端参数

协议名称也不是速度等级。延迟、带宽、链路拥塞、服务器负载以及传输组合都会影响结果。两个名称相近的节点可能使用完全不同的服务器,不能据此判断某个协议一定更快。

二、在 Add Server 中先核对 Address、Port 和 UUID

在 Home 找到要检查的条目并进入编辑界面;手动添加时,从 Home 的添加入口进入 Add Server,再选择对应 Type。字段名称与可见选项会随所选类型变化,核对时应以当前界面和服务商给出的完整参数为准。

  1. Type:确认是 VMess 还是 VLESS。不要根据节点备注猜测类型,也不要把改 Type 当作升级操作。
  2. Address:填写实际连接的域名或 IP 地址。它不一定与 TLS 验证名称相同,也不应带入分享链接的协议前缀。
  3. Port:填写服务端监听端口。例如服务商标注 443 时就填 443,不要因为开启 TLS 而自行改成这个值。
  4. UUID:完整保留服务商给出的身份凭据,检查复制时是否混入空格或换行。修改、截短或重新生成后,通常无法通过原服务端认证。
  5. 附加参数:VMess 的加密选项、VLESS 的 Flow 等参数若在当前界面出现,都需要按服务端要求处理,不能套用另一个条目的值。

常见 UUID 文本采用带连字符的十六进制形式。下面只展示格式,不是可用凭据,也不对应任何服务。两个条目即使 UUID 一样,也可能在端口、传输、安全设置上不同,不能只核对这一项。

00000000-0000-0000-0000-000000000000

三、区分协议、传输层和 TLS,不按端口猜设置

一条连接可以同时包含 VLESS、WebSocket 和 TLS:VLESS 处理代理协议,WebSocket 提供传输方式,TLS 负责相应连接的加密与身份验证。这些名称不互相替代。将 WebSocket 改成 TCP,或关闭 TLS,都可能让客户端与服务端无法完成同一套握手。

3 层
分别核对代理协议、传输方式与 TLS
443
常见 TLS 端口,不是 TLS 已启用的证明
36 字符
常见带连字符 UUID 文本的长度

启用 TLS 时,还要核对 SNI 或界面中对应的服务器名称字段。Address 可能是入口 IP,而证书对应的是域名;这时不能简单把 IP 复制到名称字段。使用 WebSocket 时,Host 和 Path 又是另一组参数:Host 参与请求路由,Path 指定请求路径,不能因为它们看起来像域名或地址就与 SNI 混填。

结论:先恢复完整参数,再判断协议是否适用

若修改后出现握手错误,先重新导入原始条目并逐项对照 TLS、SNI、Host 和 Path;不要通过关闭证书验证来替代参数核对。

四、订阅同时包含两种类型时,保留导入结果

订阅链接从你的服务商处获取。导入后,Shadowrocket 会按订阅内容生成对应条目;同一订阅包含 VMess 与 VLESS,并不要求用户把它们统一成一种类型。节点备注只是便于辨认的名称,实际协议应在编辑界面的 Type 中确认。

  1. 在 Home 的添加入口中,按界面选择 Subscribe,粘贴完整订阅链接并保存。不要把某条节点分享内容误当作订阅地址。
  2. 更新该订阅,确认列表中出现条目,再分别打开一个 VMess 与一个 VLESS 条目核对类型和关键字段。
  3. 先用原始导入参数测试。若需要修改,记录原值或保留可恢复的副本,避免一次改变多个字段。
  4. 后续更新可能重新写入订阅管理的条目。长期需要调整的参数,应先与服务商确认来源内容,而不是反复覆盖更新结果。

手动填写更适合已有完整参数、需要逐项确认的情况。如果只有 Address 与 UUID,却缺少传输方式或 TLS 参数,应先补齐信息。不能根据“这是 VLESS”就推断一定使用某种安全组合,也不能为 VMess 随意选择一个加密选项。

五、先确认 Global Routing,再做单变量排查

节点参数与路由模式是两件事。即使条目填写正确,如果当前流量没有走到该条目,也无法用网页表现判断它是否可用。Home 中的 Global Routing 决定流量处理姿态,Config 页面管理的配置文件则提供规则等内容。

Config:按当前配置处理

推荐

日常使用已核对的配置,按照规则与策略选择连接方式。未命中的请求如何处理,取决于最终规则及当前配置,并非固定直连。

适合:已确认配置正确后的日常分流

Proxy:缩小规则影响

让由 Shadowrocket 接管的连接使用当前代理策略,便于排除一般规则分流造成的差异;同时确认策略实际选中了待测节点。

适合:临时验证某个 VMess 或 VLESS 条目

Direct:检查直连基线

使用直连方式,不用于验证代理服务器是否可用。网页在 Direct 下能打开,只能说明该次直连访问成功。

适合:对照本地网络与直连访问状况

如果正在使用 Scene,应核对场景实际应用的路由与策略,不能把 Scene 当作另一种节点协议。Config 中的 DOMAIN-SUFFIX、GEOIP、IP-CIDR 和 FINAL 影响请求去向,但不会把 VMess 转成 VLESS,也不会修复 UUID 错误。

  1. 先确认设备网络可用,再在 Home 选中待测条目;若使用策略组,确认组内实际选择。
  2. 记录 Global Routing,临时使用 Proxy 对照同一目标,观察是连接超时、TLS 错误还是连接后仍无法访问。
  3. 只改一项并重试:先查 Address 与 Port,再查 UUID,最后核对传输、TLS 和名称字段。
  4. 涉及断开后自动重连时,到 Settings → On Demand 检查相关条件,避免把按需连接行为误认为协议切换问题。
  5. 验证结束后恢复原有路由模式和按需设置,保留可以复现问题的记录。

六、常见问题:UUID 相同、TLS 报错与切换失败

两个节点的 UUID 一样,可以直接把 VMess 改成 VLESS 吗?

不可以据此判断。先在 Home 打开原条目查看 Type,再与服务商提供的对应条目比较。即使身份文本相同,服务端协议、端口、传输与安全设置仍可能完全不同;应导入对应类型的完整参数。

VLESS 没有载荷加密,是不是应该手动打开 TLS?

先确认服务端采用的完整安全组合,再按原参数设置。不能仅凭 VLESS 名称决定开关;如果来源明确要求 TLS,就同时核对 TLS、SNI 和证书验证,不要只打开一个开关便结束检查。

VMess 超时,但 VLESS 能用,是不是 VMess 协议有问题?

先固定网络和测试目标,确认两条连接各自的 Address、Port 与策略选择。VMess 还应检查设备日期与时间是否准确。若不同条目连接到不同服务器,一次成功或超时不足以得出协议层面的结论。

节点有延迟结果,为什么网页还是打不开?

延迟结果不等于完整访问链路已经成功。先确认 Global Routing 与实际代理策略,再用同一目标重试,区分 DNS、TLS、认证和目标站点错误。提供故障信息时记录错误文本,不要只写“有延迟但不能用”。

判断两种节点是否配置正确,最终依据是完整参数能否与服务端对应,而不是名称新旧或字段多少。先保留订阅导入结果,再逐项核对身份、传输与 TLS,通常比反复切换 Type 更容易定位问题。