VMess 与 VLESS 不能只改 Type 就互相转换。本文面向已经拥有服务商与合法可用配置的用户,说明协议、UUID、Transport 与 TLS 各自负责什么,以及在 Shadowrocket 的 Add Server 中应怎样逐项核对。先按已有配置还原参数,再用连接记录验证;不要把协议名称当成速度或安全性的保证。
VMess 与 VLESS 的核心区别
Shadowrocket(小火箭)支持不同协议的连接配置。VMess 与 VLESS 都可以使用 UUID 作为用户标识,但认证方式、数据处理方式和可用组合并不相同。服务端配置为 VMess 时,客户端必须选择 VMess;服务端配置为 VLESS 时,也必须选择对应类型。相同的地址、端口和 UUID,不代表两种协议可以互换。
| 核对项目 | VMess | VLESS |
|---|---|---|
| 身份信息 | 使用 UUID 等认证参数,认证还涉及时间有效性 | 使用 UUID 进行用户识别与认证,不沿用 VMess 的认证机制 |
| 协议内数据加密 | 支持协议内数据加密,具体取决于所选加密设置 | 常见配置的 encryption 为 none,不自带同类载荷加密 |
| 外层安全保护 | 可叠加 TLS;协议内加密不等于 TLS | 通常依赖 TLS 或配置指定的其他安全层保护传输 |
| 传输方式 | 需匹配服务端的 Transport,例如 TCP 或 WebSocket | 同样需要匹配 Transport,不能仅凭协议名推断 |
| 迁移方法 | 使用服务端提供的完整 VMess 参数 | 使用服务端提供的完整 VLESS 参数,不直接改写旧条目 |
这里的“VLESS 不自带同类载荷加密”不等于整条连接必然明文。当 VLESS 正确运行在 TLS 之上时,外层 TLS 会保护客户端到对应 TLS 终点之间的数据。反过来,仅看到配置写着 TLS,也还要核对证书验证、名称匹配与实际连接结果。
先分清协议、Transport 与 TLS 三层参数
一次连接可以同时包含 VLESS、WebSocket 和 TLS:VLESS 负责协议处理,WebSocket 是传输封装,TLS 负责外层加密与证书验证。这几个名称不是互斥选项。VMess 也可以与 WebSocket、TLS 组合,不能把 WebSocket 当成 VLESS 独有功能。
结论:按完整参数组合录入,不按协议名称补默认值
已有配置没有写明 Transport、TLS 或端口时,先核实原始参数;不要自行补成 WebSocket、开启 TLS 或改用 443。每次只修改一个已确认有误的字段,便于判断修正是否有效。
UUID 不是地址,也不是订阅链接。常见写法由五组十六进制字符组成,长度结构为 8-4-4-4-12。复制时应避免首尾空格、换行以及全角符号。即便格式正确,也可能因为服务端没有授权该 UUID 而认证失败,因此格式检查只完成了第一步。
- Address:决定首先连接哪个主机;若填写 IP,也不能据此推断 SNI 应填写同一个 IP。
- Port:决定连接哪个监听端口;
443、8443都只是可能的配置值,以用户已有参数为准。 - Transport:决定如何承载协议数据;选择 WebSocket 时,还要检查 Host 与 Path。
- TLS:涉及安全握手、服务器名称与证书验证;不能用修改 UUID 来修复证书名称错误。
Add Server 中最容易填错的字段
在 Home 点按添加入口进入 Add Server,先选择 Type,再填写相应字段。不同 Type、Transport 与应用内设置会影响后续可见选项;下表按参数含义核对,不要求不同协议的编辑表单完全相同。已有订阅能够正确导入时,先保留导入结果,避免凭印象重建。
| 字段或参数 | 应核对的内容 | 常见误填 |
|---|---|---|
| Type | 与服务端协议一致,区分 VMess 与 VLESS | 只改 Type,保留另一种协议的参数 |
| Address / Port | 地址与数字端口分别填写 | 把含路径的完整网址填进地址栏 |
| UUID | 完整复制用户标识,不附带说明文字 | 复制了显示名称,或漏掉一组字符 |
| VMess 加密设置 | 遵循已有配置与服务端支持范围 | 把 VLESS 的 none 机械套到 VMess |
| Transport | 与服务端的 TCP、WebSocket 等设置一致 | 看到 443 就推断一定使用 WebSocket |
| WebSocket Host / Path | Host 使用指定主机名,Path 保留前导斜杠与必要查询参数 | 把 SNI 当成 Path,或漏写路径开头的斜杠 |
| TLS / SNI | 核对是否启用 TLS,以及应发送的服务器名称 | 把连接 IP 当成证书对应域名 |
| Allow Insecure | 保持证书验证,优先修正证书、名称或设备时间问题 | 把跳过验证当成长期解决方案 |
例如,一份已有配置可能要求连接某个 IP,但把 SNI 和 WebSocket Host 都设为 edge.example.com,Path 设为 /tunnel。这三个参数在该示例里有关联,却仍然承担不同职责:Address 找到连接目标,SNI 用于 TLS 握手中的名称指示,Host 用于 WebSocket 的 HTTP 握手。示例域名和路径仅解释字段关系,不是可用连接配置。
从导入到验证:先保留原配置,再检查路由姿态
协议参数正确,并不等于目标请求已经经过该连接。Home 中的选择、Global Routing 的姿态以及 Config 中的规则,共同决定实际流向。排查时应把“连接本身是否可用”与“请求是否命中预期规则”分开处理。
- 导入本人有权使用的已有配置或订阅,在 Home 确认条目数量与 Type;手动录入时先完成上一节的字段核对。
- 选择需要验证的条目,开启连接;首次使用按系统提示允许添加 VPN 配置。
- 确认 Global Routing 当前使用的姿态,避免停在 Direct 却用网页访问结果判断协议是否成功。
- 请求一个自己有权访问、可重复检查的目标,并结合应用内连接记录查看目标、策略与错误信息。
- 若需更新已有订阅,更新后再次检查当前选中条目。订阅内容变化可能使手工改动被覆盖,重要修改应先留存私密备份。
Config
推荐按当前启用的配置规则决定流向。协议验证完成后,恢复已核对的 Config,并查看请求实际匹配的策略;只有规则指向当前代理时,该请求才适合用于验证此连接。
适合:已有规则配置的日常使用与恢复验证
Proxy
让交由 Shadowrocket 处理的请求采用代理姿态,可用于临时减少规则分流的干扰。它不是协议修复开关,也不能修复错误的 UUID、Port 或 TLS 参数。
适合:短时区分连接参数问题与规则匹配问题
Direct
采用直连姿态,不适合据此判断所选 VMess 或 VLESS 连接能否正常转发。直连能够打开页面,只能说明该目标在当前直连条件下可访问。
适合:对照直连网络与目标本身的可达性
Global Routing 还包含 Scene,应检查当前场景实际应用的设置,而不是仅凭名称判断流向。Settings → On Demand 用于按条件触发连接,不负责更改 VMess 或 VLESS 的认证参数;出现自动连接现象时检查它,出现认证失败时仍需回到对应条目的参数。
超时、认证失败与证书错误分别怎么查
错误现象只能帮助缩小范围,不能单独证明是哪一个字段有误。先记录原有值,再按“地址可达性 → 安全握手 → 协议认证 → 请求路由”的顺序检查,可以避免一次修改多处后失去判断依据。下列问答描述的是排查方向,不是对所有错误文本的固定解释。
UUID 已经复制正确,为什么还是连接超时?
先在 Home 打开该条目的编辑页,核对 Address 与 Port,再检查当前网络能否到达目标。超时可能发生在认证之前,也可能来自后续握手未完成;此时不要反复生成或替换 UUID。若此前可用,核对已有服务状态与订阅更新结果。
提示证书名称不匹配,要不要开启 Allow Insecure?
先核对 TLS 的服务器名称与 SNI,检查设备日期时间,并确认服务端证书仍然有效。如果 Address 是 IP,证书却签发给域名,应按原始配置填写正确名称。不要用跳过证书验证来代替修正名称或证书问题。
VMess 参数没动,突然出现认证相关错误怎么办?
先检查设备日期与时间是否准确,再核对 UUID 是否仍获授权,以及服务端参数是否变更。VMess 的认证涉及时间有效性,明显的时间偏差可能导致失败;旧配置里的 AlterId 也不能当成任意数字反复尝试,应以当前有效参数为准。
VLESS 已连接,但打开网页仍失败,怎么继续查?
先看应用内连接记录,确认该网页请求是否使用预期策略。若已进入目标连接,再核对 Transport、WebSocket Host 与 Path,以及 TLS 和配置要求的附加参数。系统显示 VPN 已连接,不代表远端认证、DNS 解析和每个目标请求都已经成功。
延迟测试返回数值也不等于所有网页都可访问:不同测试方法覆盖的阶段可能不同,最终仍要验证实际请求。分享排查记录前,删除 UUID、订阅令牌、密码与其他访问凭据;保留 Type、Transport、错误类别及脱敏后的字段关系,通常更有助于定位问题。
选择与迁移:以现有配置和验证结果为准
如果当前 VMess 配置运行正常,不需要仅因 VLESS 名称不同就迁移。VLESS 不自带同类载荷加密,也不能直接推导为“必然更快”:外层安全协议、传输方式、网络质量、服务器负载与目标站点都会影响结果。比较时应保持相同测试目标与接近的网络条件,分别记录是否连通、失败阶段与重复测试的表现,而不是只看一次延迟。
- 只有一种有效配置:按该配置填写,不自行把 VMess 改成 VLESS。
- 已有两种获授权配置:分别建立条目,逐项验证;不要覆盖唯一可用条目。
- 从一种协议迁到另一种:重新取得完整参数,确认 UUID、端口、Transport、TLS 以及附加选项,不假定任一字段可以沿用。
- 需要长期保存:将有效配置与必要说明安全备份,不公开分享包含凭据的截图或文件。
Shadowrocket 是 Apple 平台的闭源商业应用,以 iPhone、iPad 为主要使用设备,唯一获取入口为 App Store。客户端采用一次性买断,客户端购买与连接服务相互独立;本文以用户已有自己的服务商与订阅为前提,不提供、不销售、不推荐连接服务。系统要求与购买适用范围以 App Store 页面标注为准。