VMess 和 VLESS 有什么区别:在 Shadowrocket 手填时要看懂的字段

只讲普通用户需要知道的差别:加密方式、UUID、alterId 与 TLS 依赖,以及 Add Server 时哪些字段必须与服务商提供的参数一致。

本文速览

VMess 与 VLESS 不能只改 Type(类型)就互相转换。两者都可能使用 UUID,但协议层加密、alterId 和传输安全的含义不同。本文适合已有服务商参数、准备在 Shadowrocket 手填的用户:先分清协议与 TLS,再依次核对地址、端口、身份凭据和传输字段,最后用单变量测试定位错误。

先分清三层:协议、传输与 TLS

在 Shadowrocket(小火箭)中,VMess 或 VLESS 是连接条目的协议类型;WebSocket 等描述承载数据的传输方式;TLS 则负责传输层的加密与身份验证。它们不是同一个开关。看到服务商写着“VLESS + WebSocket + TLS”,应把这三组参数分别核对,不能只填 VLESS 和 UUID 就结束。

VMess 具有协议层的认证与加密机制,实际采用的加密选项需要与服务端兼容。VLESS 本身不提供负载加密,身份认证也不等于加密。常见部署会把 VLESS 与 TLS 等安全传输机制组合使用,但不能据此把所有 VLESS 条目都机械地设成相同的 TLS 参数。

核对项VMessVLESS
身份凭据通常使用 UUID,必须与服务端一致通常使用 UUID,必须与服务端一致
协议层加密有独立的加密设置,按服务端参数配置协议本身不提供负载加密
alterId历史兼容字段;现代 AEAD 配置使用 0不使用 VMess 的 alterId
TLS可与协议层加密同时存在,按部署启用常用于保护传输,不可用 UUID 代替
传输参数传输类型、Host、Path 等需匹配服务端同样需要逐项匹配,不能照搬另一条记录

协议名称不能单独决定连接速度或可用性。两条记录即使都标为 VLESS,也可能使用不同服务器、端口、传输方式和 TLS 配置。排查时应比较完整参数,而不是依据名称判断哪一个必然更快。

UUID、alterId 与加密:哪些值不能猜

UUID 是身份标识,不是服务器地址,也不是可以自行生成后直接使用的昵称。常见文本格式为带连字符的 36 个字符,其中包含 32 个十六进制字符。复制时应检查首尾空格、换行和缺失的连字符;即使格式正确,只要与服务端登记的身份不符,认证仍会失败。

36 字符
常见带连字符的 UUID 文本长度,格式正确不代表身份有效
0
现代 VMess AEAD 配置使用的 alterId 值,不是可调速参数
443
常见 TLS 服务端口示例;实际端口必须使用给定值

alterId 属于 VMess 的历史设计。现代 VMess AEAD 配置使用 alterId=0;不要照着旧资料把它随意改成 16、32 或 64。若现有参数明确给出非零值,应先向你的服务商确认当前服务端要求,而不是把旧参数当成所有连接的通用配置。VLESS 没有需要照搬的 VMess alterId 字段。

VMess 的加密选择与 TLS 是两层设置。例如参数中出现 auto、aes-128-gcm 或 chacha20-poly1305 时,应核对它属于哪个字段,并按原参数保留。不能把“VLESS 本身不加密”理解为应在所有条目里关闭 TLS,也不能把某个 VMess 加密选项直接填入 VLESS。

判断方法:先核对身份,再核对保护传输的方式

UUID 格式异常时先重新复制原值;格式正常但仍失败,再核对 Type、VMess 的 alterId 与加密设置,以及 TLS 状态。不要通过反复更换 UUID 或关闭证书验证来碰运气。

Add Server 手填顺序:先基础字段,再传输字段

参数从你的服务商处获取。如果已有可导入的完整订阅,先使用导入结果核对字段,通常比重新手填更容易避免遗漏。客户端买断不等于线路套餐;本文只解释你已有参数的填写与检查,不提供连接凭据。

  1. 进入添加页面。在 Home(首页)点右上角添加按钮,进入 Add Server(添加服务器)。先选择 Type(类型)为 VMess 或 VLESS;类型变动后应重新检查页面上的可用字段。
  2. 填写连接目标。将服务器域名或 IP 填入 Address(地址),将给定端口填入 Port(端口)。地址字段通常不应包含 https://、路径或端口后缀。服务商提供哪个端口,就填写哪个端口,不能因为启用 TLS 就自行改为 443。
  3. 填写身份与协议参数。复制 UUID 到对应身份字段。VMess 另核对 alterId 和加密设置;VLESS 不套用 VMess 的这些值。字段显示名称可能随协议与界面语言变化,应按参数含义对应,而不是只看排列顺序。
  4. 选择传输方式。按原参数设置传输类型。使用 WebSocket 时,再核对 Host(主机)与 Path(路径);使用其他传输方式时,不要为了“填完整”而强行添加 WebSocket 专用字段。
  5. 核对 TLS。按给定状态启用或关闭 TLS,并核对 Server Name / SNI(服务器名称)、证书验证与其他指定选项。若参数还包含明确的 Flow 等协议选项,也应按原值保留;不要自行追加。
  6. 保存后回到 Home。检查新条目的类型和名称,选择该条目再测试。不要覆盖唯一一份可用记录;保留原记录,便于对照与恢复。

TLS、Host、Path:同一个域名也可能填错位置

TLS 并非只负责“打开加密”。正常证书验证还需要核对证书是否可信、是否在有效期内,以及目标名称是否匹配。Address 如果是 IP,而证书签发给域名,服务商可能另外给出 SNI;此时应保留各自的用途,不应简单把 IP 复制到所有名称字段。

核对方案:将传输字段与 TLS 字段分开检查

WebSocket 传输
  • 传输类型必须与服务端一致。
  • Host 使用给定的请求主机名,不添加协议前缀。
  • Path 保留开头的斜杠、大小写与已有查询参数。
  • /ws 和 /WS 不应视为可随意互换。
TLS 安全设置
  • TLS 状态与原参数一致,不因端口号猜测。
  • SNI 使用给定的服务器名称,通常不含路径和端口。
  • 保留证书验证;遇到错误先核对名称与系统时间。
  • ALPN 等附加参数仅在明确给出时按原值填写。

先确定哪一层失败,再修改对应字段;TLS 握手失败时,修改 WebSocket Path 通常不能解决证书问题。

例如已有参数指定 Port 为 443、WebSocket Path 为 /ws,这只能说明该条目的两个具体值。它不意味着所有 VMess 或 VLESS 都使用这个组合。本文中的端口与路径用于解释字段,不能组成可实际连接的配置。

加密设置怎么选:保留给定值,不用试错替换

手填时容易把“可选择”误解为“可以任意选择”。VMess 的加密设置需要与协议实现及服务端要求兼容;TLS 的状态需要与服务端入口一致。正确做法不是选看起来更强或更快的名称,而是把原参数准确还原。

加密与 TLS:保留给定值

推荐

VMess 加密选项按原参数填写,TLS 状态与服务端入口保持一致;VLESS 单独核对传输保护方式,不借用 VMess 的加密字段。

适合:首次手填、订阅导入后复核、已有完整参数的连接排查

加密与 TLS:自行替换选项

只改客户端选项并不能同时改变服务端。随意关闭 TLS、改端口或切换协议加密,可能新增握手与认证错误,不适合作为常规排查方式。

适合:仅在服务端参数已明确变更、并已取得对应新值后同步修改

执行原则:一次只改变一个已确认错误的字段

先记录原值,再修改并复测同一个目标。如果同时改 Type、端口、TLS 和 Path,即使恢复连接,也无法判断真正原因;后续更新订阅时还容易再次出现不一致。

保存后仍连不上:按失败阶段检查

延迟数值正常不等于整条连接已完成认证。不同测试可能只测到目标端口可达、连接建立或某个请求的响应时间,不能单凭一个数值确认 UUID、TLS 和传输字段全部正确。测试时应记录“是否能建立连接、是否出现证书错误、是否只有某个网站失败”这些可区分的现象。

  1. 先确认选中了新条目。在 Home(首页)检查当前选择,避免测试仍使用旧记录。必要时停止连接后重新启用,再发起一次新的请求。
  2. 连接超时先查目标。核对 Address 与 Port 是否漏字或被拼在一起;在可用的另一种网络下复测。端口无法建立连接时,不应先把问题归因于 UUID。
  3. 出现 TLS 错误先查名称与时间。确认设备系统时间正确,SNI 与原参数一致。证书过期或服务端配置异常需要由服务商处理,不应把跳过验证作为长期解决办法。
  4. 握手后立即断开再查认证与传输。重新核对 UUID、VMess 的 alterId 与加密设置,以及 WebSocket 的 Host、Path。仅凭断开现象无法确定唯一原因,应结合可用的连接错误信息判断。
  5. 只在部分请求失败时检查路由。打开 Home → Global Routing(全局路由),核对当前选择。Proxy(代理)可用于临时排除规则匹配干扰,但仍需有效的连接条目;Direct(直连)不能验证该条目的代理连接是否成功。测试后恢复原来的路由设置。

Config(配置)负责规则等配置内容,不能修复填错的 UUID;On Demand(按需连接)负责连接触发条件,也不能补齐缺失的 TLS 参数。应先让单条记录在明确的测试条件下工作,再检查自动连接和规则分流,避免多个变量混在一起。

手填常见问题:更换协议、订阅更新与信息脱敏

UUID 一样,能把 VMess 直接改成 VLESS 吗?

不能据此判断可以转换。两者的握手与字段要求不同,服务端必须提供对应协议入口。先从你的服务商处获取 VLESS 的完整参数,再新建独立记录;不要只修改原记录的 Type。

VLESS 没有协议层加密,是不是一定要手动打开 TLS?

先核对原部署使用的安全传输方式。常见 VLESS 配置依赖 TLS 等机制保护传输,但客户端单方面启用 TLS 不能把一个普通入口变成 TLS 入口。若原参数没有解释传输保护方式,应先向你的服务商确认,不要猜测。

订阅更新后,手动修改为什么不见了?

订阅更新可能重新写入受订阅管理的条目。先在 Home(首页)区分订阅记录和独立手填记录;需要对照时新建独立条目并保留原记录。若订阅内容本身有误,应向你的服务商核对源参数,而不是反复修改后再更新覆盖。

让别人帮忙看字段,哪些信息要遮住?

遮住完整 UUID、订阅链接中的 token、密码及完整分享链接。可以提供 Type、传输类型、TLS 是否启用、错误现象与脱敏后的字段结构。复制到公开文本前再检查一次,二维码也可能包含完整凭据。

最终核对顺序是:Type → Address 与 Port → UUID → 协议专属字段 → 传输方式 → TLS 与名称字段。只要原参数不完整,就先补齐资料;不要用另一条记录的域名、路径或身份凭据拼接。需要复习订阅导入与管理,可阅读订阅手册;首次使用可先按入门指南完成系统授权和基础连接检查。

App Store 正版核对