VMess 与 VLESS 不能只通过切换 Type 相互转换:两者都常用 UUID 识别用户,但协议加密机制不同,外层还可能使用 TLS 与 WebSocket。本文适合已经持有服务商参数或订阅的用户,按“协议 → 认证 → 传输 → TLS”的顺序核对字段,再用 Global Routing 区分连接问题与规则问题。订阅与节点从你的服务商处获取。
一、先分清 VMess、VLESS、TLS 与传输层
在 Shadowrocket(小火箭)里,VMess 和 VLESS 是两种不同的代理协议,不是同一条连接的快慢档位。服务端使用哪一种,客户端就必须选择相同的 Type。即使服务器地址、端口和 UUID 完全一致,单独把 VMess 改成 VLESS,也不会让服务端自动接受另一种协议。
理解参数时,应把配置拆成几个独立层次。VMess 或 VLESS 决定代理协议和认证格式;TCP、WebSocket 等决定连接如何承载;TLS 负责相应连接上的加密与服务器身份验证。WebSocket 本身不等于加密,端口填写为 443 也不等于已经启用 TLS。
例如,“VLESS + WebSocket + TLS”表示用 VLESS 处理代理请求,通过 WebSocket 承载,并由 TLS 保护到相应 TLS 终止点的连接。这三个名称回答的是不同问题,不能拿其中一个去替换另一个。
二、加密与 UUID:VLESS 的 none 不等于整条连接没有保护
VMess 支持在协议层对数据进行加密。采用 AEAD 的 VMess 实现还会对相应协议数据进行认证保护;具体数据加密方式应与服务端兼容。客户端出现的 auto 等选项与 VMess 的加密选择有关,不能把它照搬成 VLESS 的配置要求。
VLESS 本身不提供 VMess 那样的协议层数据加密,常见参数中的 encryption=none 指的是这一层。若外面正确配置了 TLS,连接仍可获得 TLS 提供的传输保护。因此,“VLESS 没有内置数据加密”和“VLESS 连接一定是明文”是两回事;也不能据此关闭服务商要求的 TLS。
| 核对项 | VMess | VLESS |
|---|---|---|
| 用户凭据 | 通常使用 UUID,与服务端用户配置一致。 | 通常使用 UUID,与服务端用户配置一致。 |
| 协议层数据加密 | 支持协议层加密,按服务端要求选择兼容设置。 | 不提供这一层加密,常见 encryption 值为 none。 |
| 外层 TLS | 可与 TLS 组合,不由协议名称自动决定。 | 可与 TLS 组合,不能因 none 就关闭 TLS。 |
| AlterId | 属于历史兼容参数;现代 AEAD VMess 通常对应 0,不自行改成非零值。 | 不使用 VMess 的 AlterId,不能照抄。 |
| 时间检查 | 认证与时间有关,设备时间明显偏差可能造成失败。 | 不是 VMess 的时间认证机制,但 TLS 证书有效期检查仍依赖正确时间。 |
UUID 是认证凭据,不是服务器域名,也不是订阅地址。两种协议使用相同外观的 UUID,不代表账号可通用。复制时不要附带引号、空格或换行;向他人发送诊断信息时应遮盖 UUID、订阅 token 和其他凭据。
三、Shadowrocket 填写字段:先看共同项,再看差异项
在 Home 中添加或编辑节点时,先核对 Type,再逐项填写。已有订阅的用户优先使用服务商提供的导入数据,避免手工转写丢失扩展参数。下表按字段含义整理;不同 Type 下显示的选项可能不同,应以当前界面和服务商说明为准。
| 字段或参数 | 填写内容 | 常见错误 |
|---|---|---|
| Type | 明确选择 VMess 或 VLESS。 | 只看节点名称猜协议;名称可自定义,不能作为依据。 |
| 服务器地址 | 服务商提供的域名或 IP 地址。 | 把完整订阅 URL 填进地址栏,或误加 https://。 |
| Port | 填写服务商给定的端口整数,例如 443。 | 认为 TLS 只能用 443,擅自覆盖实际端口。 |
| UUID | 逐字符保持原值。 | 把节点备注当作账号,或复制时漏掉字符。 |
| 传输设置 | 按参数选择 TCP、WebSocket 等对应方式。 | 认为两种协议都必须用 WebSocket。 |
| TLS / SNI | 核对开关、服务器名称与证书要求。 | 把连接地址机械复制为 SNI,忽略服务商指定域名。 |
| WebSocket Host / Path | 启用 WebSocket 时,按服务端要求填写。 | 漏掉 Path 开头的 /,或把 Host 与 SNI 当成同一字段。 |
服务器地址决定先连接到哪里;SNI 用于 TLS 握手中的服务器名称指示,并与相应证书验证设置有关;WebSocket Host 是 HTTP 请求中的主机信息。这些值有时相同,但职责不同。服务商分别给出时,应分别保留,不能为“看起来整齐”而统一修改。
- 先保留一份原始参数,确认 Type、地址、Port 与 UUID。
- 再核对传输方式;只有使用 WebSocket 时才处理相应 Host 与 Path。
- 最后核对 TLS、SNI 以及服务商要求的其他参数,不以关闭证书验证作为默认修复。
- 保存后回到 Home 选择该节点,进行实际请求测试;每次只改一项,便于判断原因。
四、订阅导入与手动填写:两种核对方案
订阅是批量提供或更新节点信息的入口,不是 VMess 或 VLESS 本身。一个订阅内可以包含不同协议;更新后节点地址、端口和传输参数也可能变化。导入成功只表示客户端读到了数据,不保证凭据仍有效或服务端当前可用。
核对方案:保留原始参数,减少重复手改
已有订阅
- 订阅从你的服务商处获取,在 Home 添加订阅入口并完成更新。
- 展开导入结果,检查 Type、地址与端口是否符合服务商说明。
- 更新前记录手动改动;订阅更新可能重建或覆盖节点字段。
只有单个节点参数
- 在 Home 添加节点,先选择正确的 Type。
- 按字段表录入 UUID、传输与 TLS 参数,不混用两种协议的专属项。
- 保留原始记录,参数变动时逐项对照,而不是反复猜测开关。
两种方式都以服务端配置为依据;订阅入口、节点凭据与应用购买记录分别管理。
订阅地址通常带有认证信息。示意地址 https://example.com/sub?token=xxxx 仅用于说明结构,不能用于导入。真实地址不要放到公开截图、聊天记录或日志中;订阅更新失败时,先区分地址过期、请求无法到达和返回内容无法解析,再向你的服务商核对。
五、连接测试:区分节点参数错误与 Global Routing 选择
Home 用于选择节点和连接,Config 管理配置文件与规则,Settings 包含应用设置。节点协议填写正确,不代表每个请求都会经过这个节点;Global Routing 决定流量处理姿态,Config 下还要结合当前生效规则判断。
Config
推荐按当前配置规则选择处理策略;未命中前置规则的请求通常交给 FINAL。结果是否直连取决于配置,而不是固定“其余都直连”。
适合:已核对规则、需要按目标区分处理方式的日常使用。
Proxy
将流量交给代理路径,可用于暂时排除按目标匹配规则的影响。测试时仍需核对所选节点以及适用的排除设置。
适合:保持目标网站不变,检查所选节点是否能够完成请求。
Direct
使用直连路径;此姿态下网页能打开,不能证明刚填写的 VMess 或 VLESS 节点有效。
适合:对照本地网络是否可以直接访问同一个目标。
如果使用 Scene,还要核对相应场景的设置,不能只凭上一次选中的节点推断当前路径。排查时固定网络和测试目标,先记录原姿态,再短暂切换测试,完成后恢复原设置。On Demand 管理按条件建立连接,不会替你修正 UUID、SNI 或 WebSocket Path。
- Direct 能打开、Proxy 失败:检查所选节点、服务端可达性与认证参数,不先改规则。
- Proxy 能打开、Config 失败:检查当前配置中的 DOMAIN-SUFFIX、GEOIP、IP-CIDR 与 FINAL 所指向的策略,并结合请求记录判断实际命中结果。
- 连接超时:先核对地址、端口和当前网络;超时本身不能证明 UUID 错误。
- TLS 或证书相关错误:检查设备时间、SNI、证书名称与 TLS 设置,不把跳过验证当作常规方案。
六、常见问题:速度、转换与导入后的异常
VLESS 一定比 VMess 快吗?
不能只凭协议名称判断。保持同一网络、相近测试时段和相同目标,记录请求完成情况与延迟,再核对服务器路径、拥塞和外层传输。若两条节点的服务器不同,就不能把差异全部归因于协议;VLESS 没有内置数据加密也不等于所有场景吞吐都更高。
直接把 Type 从 VMess 改成 VLESS 可以吗?
不可以据此完成转换。先从你的服务商处获取对应的 VLESS 参数,再在 Home 新建独立节点进行核对。服务端必须配置对应协议;UUID 相同也不能替代服务端支持,原 VMess 节点应保留以便对照。
UUID 和端口都对,为什么 WebSocket 还是连不上?
继续检查传输方式、Host、Path、TLS 和 SNI。例如服务端要求的 Path 是 /connect,填成 connect 或 / 就不是同一个路径。遇到 HTTP 状态错误时,结合服务商说明核对反向代理入口,不随机轮换域名;/connect 只是路径示意,不是通用值。
更新订阅后,之前能用的节点失败了怎么办?
先在 Home 确认当前选中的节点,再对照更新后的 Type、地址和传输参数,检查原先的手动改动是否被覆盖。若返回的数据缺少必需字段,保留已遮盖凭据的错误描述并向你的服务商核对,不自行猜测 UUID 或 TLS 设置。
七、核对应用来源与服务范围
Shadowrocket 是闭源商业应用,唯一购买安装入口是 App Store,采用一次性买断。核对时查看官方图标、开发者 Shadow Launch Technology Limited 和应用 ID 932747118。主要使用设备为 iPhone 与 iPad;系统要求、价格、兼容性与购买适用范围以 App Store 页面标注为准。