VMess 与 VLESS 不是可以直接互换的 Type。两者都使用 UUID 标识用户,但认证机制与协议内加密不同;TLS、传输方式、Host 和 Path 还要分别匹配服务端。本文适合已经持有自己的服务商配置或订阅、准备在 Shadowrocket(小火箭)中导入或手动填写的用户,按“选对 Type → 核对认证 → 核对传输 → 分层排错”的顺序操作。
先给结论:Type 必须与服务端一致
VMess 是带有认证及可选载荷加密机制的代理协议;VLESS 使用更精简的协议结构,本身不提供载荷加密,通常需要由外层安全机制保护传输。两者使用相同格式的 UUID,不代表同一个服务端入口同时支持两种协议。把已有 VMess 条目的 Type 改成 VLESS,其他字段原样保留,不能完成协议转换。
添加之前先确认资料是否齐全。除了 Address、Port 和 UUID,还要确认传输方式及安全设置。端口 443 只是一个端口号,不能据此推断“必然启用 TLS”,也不能推断使用 VMess 还是 VLESS。
| 核对项 | VMess | VLESS |
|---|---|---|
| 用户标识 | 使用 UUID,并参与 VMess 认证流程 | 使用 UUID,采用 VLESS 的认证结构 |
| alterId | 与旧式认证兼容有关;现代 AEAD 配置通常为 0 | 没有对应的 alterId 参数 |
| 协议内加密 | 存在 Security 相关选项,需符合服务端要求 | 协议本身不加密载荷;链接里的 encryption 通常为 none |
| 外层安全 | 独立核对 TLS 等设置 | 独立核对 TLS 等设置,不能把 none 当成安全层配置 |
| 传输方式 | TCP、WebSocket 等需与服务端一致 | TCP、WebSocket 等需与服务端一致 |
结论:先确认完整参数,再选择 Type
只有“地址、端口、UUID”三项时,先向自己的服务商核对传输与安全设置;不要通过切换 Type 或轮流尝试加密选项补齐缺失信息。
添加步骤:优先保留已有配置的完整字段
在 Home 中使用添加入口进入 Add Server,选择资料指定的 Type,再逐项填写。手动添加适合资料完整、需要核对字段的情况;若已有完整分享链接或订阅,导入可以减少漏填 Host、Path 等参数的机会。导入后仍应打开条目核对,而不是只看显示名称。
导入已有完整配置
推荐使用用户已有的分享链接或订阅导入,随后检查 Type、Address、Port、TLS 与传输设置。推荐的是减少转录错误,不代表任意来源的配置都可直接信任。
适合:服务商已经提供完整链接或订阅,参数较多
Add Server 手动填写
按参数表逐项录入,先选 Type,再检查随协议变化而出现的选项。保存前确认没有把另一种协议的参数照搬过来。
适合:已有完整参数表,需要逐项核对或定位差异
- 在 Home 确认当前要使用的条目,进入其编辑页面检查 Type。不要仅凭名称中的“VMess”或“VLESS”判断实际类型。
- 把 Address 与 Port 分开填写。Address 通常是域名或 IP,不要把整段带路径的分享链接填入地址字段。
- 复制完整 UUID,核对前后是否多出空格、换行或引号,再填写对应的协议选项。
- 检查 TLS 与传输设置,保存后重新打开条目,确认字段没有遗漏。
单条分享链接描述一个连接条目,订阅地址则用于取得并更新一组条目。例如 https://example.com/sub?token=xxxx 只是不可用的订阅格式示例,不是 Address 的填写示例。订阅更新可能重新生成条目,排错前应记录手动修改的位置,避免把更新覆盖误判为设置没有保存。
认证字段:UUID 与 alterId 分别检查
UUID 是用户标识,不是服务器域名,也不是订阅地址中的 token。常见文本格式为 36 个字符,包含连字符,例如 123e4567-e89b-42d3-a456-426614174000。这里仅演示格式,不是可用凭据;外形正确也不代表该 UUID 已获服务端授权。
VMess 的 alterId 不能作为延迟或速度调节项。旧式 VMess 认证曾使用非零 alterId,现代 VMess AEAD 配置通常使用 0。如果旧资料写着其他数值,应核对服务端当前使用的认证方式,而不是自行把数值加大。VLESS 没有对应的 alterId,不需要把它移植到其他字段。
- UUID 错误:即使 TCP 端口可以连通,后续协议认证仍可能失败,表现为请求中断、被关闭或等待超时。
- VMess 认证方式不一致:地址和端口都正确也可能无法完成请求;应同时核对 alterId 与服务端对 AEAD 的要求。
- 设备时间异常:VMess 认证涉及时间校验。在 iPhone 或 iPad 的系统设置中检查“通用 → 日期与时间”,确认时间与时区正确。
- 条目名称相同:名称只是辨认标签,不参与认证。对比时应查看实际字段,不能用重命名代替修改 UUID。
加密与传输:none 不等于关闭 TLS
协议内加密和外层 TLS 属于不同层。VMess 的 Security 选项可能涉及 auto、aes-128-gcm、chacha20-poly1305 等取值,应以服务端要求及应用实际提供的选项为准。不要把 VMess 的加密值填入 VLESS 的对应位置,也不要为了追求速度随意选择 none。
在 VLESS 分享参数中,encryption=none 指 VLESS 本身不提供载荷加密,不代表外层连接无需保护。如果原配置使用 TLS,导入后仍要保留 TLS;如果配置使用其他安全机制,也必须完整匹配其专用参数,不能仅靠开启普通 TLS 替代。
核对方案:将安全层与传输层分开记录
TLS 安全层
- 确认服务端是否要求 TLS,不根据端口猜测。
- 检查 SNI,即 TLS 握手使用的服务器名称。
- 核对证书覆盖的域名与 SNI 是否匹配。
- 保留证书校验,针对报错修正域名或证书。
WebSocket 传输层
- 确认传输方式为 WebSocket,而非普通 TCP。
- 核对 Host,不能默认它等于 Address。
- 逐字符核对 Path,保留开头的斜杠。
- 区分大小写,并保留资料要求的路径参数。
Address、SNI 与 WebSocket Host 可以相同,也可以不同;逐项使用原配置的值,不做自动替换。
例如,假设参数表写着 Address 为 edge.example.com、Port 为 443、SNI 为 tls.example.com、WebSocket Host 为 web.example.com、Path 为 /connect,就应按五个独立字段检查。这些都是说明用途的假值;它们展示的是字段关系,不构成可连接的配置。
连接失败:按层排查,不凭延迟数值下结论
延迟测试得到数值,只能说明该测试涉及的步骤有响应,不能单独证明 UUID、TLS、传输与目标网站访问全部正常。不同测试方式覆盖的层次不同,排错时应记录测试方式、错误文本和发生位置。下表是现象与检查方向的对应关系,不是仅凭一条报错就能确定原因的诊断结论。
| 看到的现象 | 先检查 | 下一步操作 |
|---|---|---|
| 服务器域名解析失败 | Address 拼写及当前网络的解析情况 | 核对原始地址,确认没有混入协议前缀或路径 |
| 连接超时或被拒绝 | Address、Port 与网络可达性 | 核对端口是否与服务端当前监听端口一致 |
| TLS 证书或握手错误 | TLS 开关、SNI、系统时间与证书 | 修正不匹配项,不以关闭证书校验作为常规解决方法 |
| WebSocket 握手返回 400 或 404 | Host、Path、传输方式及服务端路由 | 逐字符对照路径;状态码本身不能证明 UUID 有误 |
| 握手后请求被关闭 | Type、UUID、VMess 认证参数 | 恢复原始参数,再核对服务端是否接受该用户 |
| 测试有响应但网页打不开 | Global Routing、所选条目与 DNS | 确认请求实际使用该条目,再分开检查规则和解析 |
- 保存一份原始参数记录;包含 UUID 或订阅 token 的内容只保留在自己的安全位置,不直接公开。
- 在 Home 选中待测条目,临时将 Global Routing 设为 Proxy,以减少 Config 规则对判断的干扰。应用内保留流量与系统限制仍需考虑。
- 发起同一个网页请求,检查错误发生在连接、TLS、传输还是请求阶段;每轮只修改一个字段。
- 完成验证后恢复原来的 Global Routing。若 Proxy 下可用而 Config 下失败,再到 Config 检查规则命中与策略,不继续反复修改 UUID。
Config 模式会按配置规则决定请求使用的策略。例如 DOMAIN-SUFFIX,example.com,DIRECT 会让相应域名直接连接,即使 Home 中选中的条目本身可用,该请求也未必经过它。排除规则干扰的目的,是把“协议配置错误”和“请求没有使用该条目”分开。
常见问题:切换协议、订阅更新与字段缺失
VMess 能用,改成 VLESS 为什么立刻失败?
先恢复原来的 Type。服务端必须提供 VLESS 入口,并给出对应的端口、UUID、传输和安全参数,才能另建 VLESS 条目。客户端改名或切换 Type 不会改变服务端支持的协议。
VLESS 找不到 alterId,是不是少填了一项?
不是。alterId 属于 VMess 的相关参数。回到 Add Server 核对 Type 确实为 VLESS,然后按原资料填写 UUID、传输与安全设置,不要寻找其他字段代填 alterId。
只有 UUID 和 443 端口,能直接开 TLS 吗?
不能据此确定。先向自己的服务商核对 Address、TLS 要求、SNI 与传输方式;如果使用 WebSocket,还要取得 Host 和 Path。信息不齐时,暂停反复试填更容易保留有效排错线索。
订阅更新后,刚改好的 Path 又变回去了怎么办?
在 Home 打开更新后的条目,对照原始订阅参数与自己的修改记录。订阅内容由来源端决定,应让服务商修正源配置;需要临时验证时另建手动条目,避免把临时修改当作订阅已经修复。
VMess 与 VLESS 的选择首先取决于已有服务端支持什么,再看具体传输与安全配置,不能单凭协议名称推断速度。Shadowrocket 负责使用用户已有的配置;客户端购买和网络服务分别管理。本站不提供、不销售、不推荐节点或订阅。