VMess 与 VLESS 不是可以直接互换的名称。两者都常用 UUID 标识用户,但 VMess 可在协议层加密数据,VLESS 本身不提供数据加密,需要另外核对 TLS 等安全层。本文面向已有服务商与订阅的用户,按协议、传输、安全层三个层次说明差异,再给出 Shadowrocket 的字段核对和排错顺序。
一、先分清协议、传输与 TLS
在 Shadowrocket(小火箭)中,选择 VMess 或 VLESS 只是确定了连接使用的代理协议,并没有同时确定传输方式和安全设置。看到名称里带有 VLESS,不能直接推断它使用 WebSocket;看到 VMess,也不能推断 TLS 已经启用。
可以把一条连接拆成三个问题:双方按什么协议识别用户,代理数据怎样封装传递,以及客户端到服务端的这一段是否由 TLS 保护。填写时需要逐层匹配服务端,不能只填地址、端口和 UUID 就忽略其余项目。
| 层次 | 示例 | 核对内容 |
|---|---|---|
| 代理协议 | VMess / VLESS | Type 必须与服务端类型一致,UUID 也必须对应同一账户。 |
| 传输封装 | TCP / WebSocket | 选择服务端指定的方式;WebSocket 还需核对 Host 与 Path。 |
| 安全层 | TLS | 确认是否启用,并核对用于握手和证书验证的服务器名称。 |
TCP 与 WebSocket 是这里用于解释的两种常见配置,不代表完整支持清单。可选项以应用内当前显示为准;已有订阅提供了具体传输参数时,应以该条配置为准,不凭协议名称补填。
二、VMess 与 VLESS 的加密、UUID 对照
VMess 的协议设计包含认证与数据加密机制,常见配置采用 AEAD 方式。VLESS 的协议设计更精简,本身不加密代理载荷。因此,VLESS 配置中出现 encryption=none,不能单独解释为“整条连接没有加密”:还要查看外层是否使用 TLS。
| 项目 | VMess | VLESS |
|---|---|---|
| 用户标识 | 通常使用 UUID。 | 通常使用 UUID。 |
| 协议层加密 | 具有数据加密机制;具体选项应按服务端配置保留。 | 本身不提供数据加密,不能照搬 VMess 的加密算法设置。 |
| TLS 的作用 | 可作为额外的外层保护,不是由 VMess 名称自动决定。 | 常用来保护客户端与服务端之间的连接;仍须核对实际安全配置。 |
| 旧字段 | 旧配置可能出现 AlterId;现代 AEAD 配置通常为 0。 | 不使用 VMess 的 AlterId 认证机制。 |
| 能否改名转换 | 不能。修改 Type 不会把服务端监听方式或账户配置一并转换。 | |
UUID 是身份凭据,不是服务器地址,也不是 TLS 证书。即使两条配置恰好显示同一个 UUID,只要协议、端口或传输不同,它们仍是不同的连接配置。不要把 UUID 放进公开截图、诊断贴或分享文字。
判断方式:先查 TLS,再解释 none
遇到 VLESS 的 encryption=none,先打开该条配置检查 TLS 与服务器名称;不要为消除 none 字样而改成 VMess,也不要因为端口是 443 就默认 TLS 已经开启。
三、在 Home → Add Server 逐项填写
手动添加时,从 Home 进入 Add Server。不同 Type 与传输选项会改变后续字段,界面显示也可能随应用调整;下表给出应核对的字段含义,而不是要求每条连接都显示完全相同的表单。
- 先选 Type。按服务商提供的信息选择 VMess 或 VLESS,再填写其他字段,避免切换类型后遗漏重置的选项。
- 填写 Address 与 Port。Address 只填指定主机名或 IP,Port 填指定数字;不要把整条分享链接粘进地址栏。
- 填写 UUID。完整复制用户标识,检查前后空格、漏字符和误复制的换行,不自行生成替代值。
- 核对传输参数。若使用 WebSocket,继续核对 Host 与 Path。路径中的前导斜杠和大小写都应保留。
- 核对安全参数。按原配置设置 TLS 与服务器名称。仅在服务商明确提供相关参数且应用显示相应选项时,再填写额外字段。
- 保存后返回 Home。选中刚保存的条目,再进行连接测试。保存成功只表示表单已记录,不表示服务端已接受连接。
| 字段或概念 | 填写依据 | 常见误填 |
|---|---|---|
| Address / Port | 已有服务商提供的接入地址与端口。 | 把 443 当作固定值,覆盖了原配置的其他端口。 |
| UUID | 对应当前服务端账户的完整用户标识。 | 混用另一条配置的 UUID,或复制时多出空格。 |
| VMess 加密选项 | 保留导入配置或服务商要求。 | 把其他协议的密码或算法直接套入。 |
| Host / Path | WebSocket 等相应传输的服务端设置。 | 把 Path 的 / 漏掉,或认为 Host 必须等于 Address。 |
| TLS / SNI | 安全层设置与服务器名称要求。 | 以 IP 连接时,误把 IP 当作证书对应的域名。 |
Address、WebSocket Host 与 TLS SNI 可能相同,也可能因服务端部署方式而不同。Address 决定连接目标,Host 属于相应的应用层请求信息,SNI 用于 TLS 握手中的服务器名称指示;不要为了“统一”而把三个值全部改成一个域名。
四、订阅中怎么辨认 VMess 与 VLESS
订阅是配置的分发方式,不是第三种代理协议。一个已有订阅可以包含多种类型;名称中的“VMess”或“VLESS”只是备注时,不能作为最终判断依据。应在 Home 打开具体条目的编辑界面,查看 Type 及对应参数。
- 看实际类型:分享链接的
vmess://与vless://前缀可用于初步辨认;导入后仍以应用显示的 Type 为准。 - 看参数位置:VMess 分享信息常将配置编码后放在链接主体中;VLESS 分享链接常将 UUID 放在地址前,并用查询参数描述传输和安全设置。不能只检查可读的备注名称。
- 区分订阅地址与单条链接:订阅地址用于获取一组配置,单条分享链接描述一个连接。两者应按各自导入入口处理。
- 更新后再核对:在 Home 对对应订阅执行更新后,检查目标条目是否仍存在,Type、地址和传输是否发生变化,并重新确认当前选中条目。
例如 https://example.com/sub?token=xxxx 只是订阅地址的格式示意,不是可用服务。实际订阅中的 token 与 UUID 都应当作为敏感信息保存;需要说明故障时,可仅记录 Type、传输方式、端口以及不含凭据的错误现象。
五、连接排错:先固定配置,再检查路由姿态
VMess 与 VLESS 都可能因为地址、认证、传输或 TLS 参数不匹配而失败。排错时每次只改一个变量:先确认选中的服务器,再确认协议与字段,最后检查流量是否实际经过该条连接。不要同时改 Type、端口、TLS 和 Global Routing,否则无法判断是哪一项影响结果。
保留原始协议与参数
推荐先按已有订阅或服务商参数逐项比对,再单独测试。对于已经明确要求 TLS 的配置,保持证书验证,不以关闭验证代替定位错误。
适合:首次导入、手动填写、协议类型不确定
Global Routing → Proxy
需要隔离规则影响时,可临时使用 Proxy 进行网页请求测试。它不等于所有系统流量都必然被接管,也不能修复服务端参数错误。
适合:服务器测试有响应,但怀疑网页请求被规则分到其他策略
Global Routing → Config
依据当前 Config 的规则处理流量。测试结束后恢复原先姿态,并检查目标请求命中的规则与策略,不把规则结果误判为协议性能。
适合:确认连接可用后的日常规则分流与命中检查
- 在 Home 选中目标条目,核对备注与实际 Type,避免测试了另一条服务器。
- 运行 Connectivity Test,记录该条目显示的是响应结果还是失败。测试结果只反映对应检测过程,不保证所有网站和应用均可访问。
- 完成系统提示的 VPN 配置授权并打开连接开关,再测试实际网页。若 Global Routing 为 Direct,网页直连结果不能证明代理协议可用。
- 若出现证书相关错误,优先核对系统时间、TLS 服务器名称和证书对应域名;若超时,继续核对地址、端口与网络可达性。错误现象是线索,不是唯一诊断结论。
- 若使用 Config,检查规则顺序及
DOMAIN-SUFFIX、IP-CIDR、GEOIP、FINAL的目标策略。它们决定请求如何分流,不会把 VMess 自动转换为 VLESS。
执行顺序:可达性、认证、传输、安全层、路由
先保存原配置并记录一次失败现象,再按层核对;如果更改一项后现象没有改善,恢复该项后继续下一项,不连续叠加未经确认的修改。
六、VMess 与 VLESS 常见问题
UUID 一样,能直接把 VMess 改成 VLESS 吗?
不能据此转换。在 Home 打开条目检查 Type,并向已有服务商核对该端口实际接收的协议。即使用户标识相同,服务端也必须具有匹配的协议、传输和安全配置。需要另一种协议时,应使用服务商已经提供的对应条目。
VLESS 显示 none,是不是应该手动选一个加密算法?
不要套用 VMess 的算法。VLESS 的协议层不提供数据加密,应继续检查 TLS 等安全层设置。若原配置明确使用 TLS,在条目编辑界面核对 TLS 和服务器名称;如果安全参数不明确,先向已有服务商核实,再进行连接。
端口填了 443,为什么还会提示 TLS 错误?
443 只是端口数字。检查 TLS 是否按要求启用、SNI 是否与证书对应、设备日期时间是否正确,并核对 Address 是否连接到了正确服务端。不要通过关闭证书验证掩盖名称不匹配。
哪个协议一定更快,延迟更低?
不能只凭协议名称判断。比较时应尽量保持接入网络、服务端位置、传输方式、TLS 与测试目标一致,并在 Home 重复执行 Connectivity Test,再检查实际请求。不同服务器的一次响应结果不能单独归因于 VMess 或 VLESS。
订阅更新后,手动修好的字段又变了怎么办?
先确认变动的是订阅管理的原条目还是独立保存的测试条目,再核对更新后的 Type、地址和安全参数。将修改前后不含凭据的差异提供给已有服务商;不要反复覆盖 UUID,也不要公开完整订阅地址。