本文适用于已持有自己服务商参数、需要在 Shadowrocket(小火箭)中导入或手动填写 VMess、VLESS 的用户。先区分协议认证、连接加密和传输封装,再核对 Add Server 中的地址、端口、UUID 与 TLS 设置;出现连接失败时,按字段顺序检查,而不是把协议名称改成另一个试运气。
VMess 与 VLESS:先区分认证、加密和传输
VMess 与 VLESS 都是连接协议,不是连接服务本身。服务端启用哪一种,客户端就必须选择对应类型。即使地址、端口和 UUID 完全相同,把 VMess 条目改为 VLESS 也不会自动完成服务端协议转换。
VMess 可以在协议层提供数据加密;常见的现代配置使用 AEAD 认证机制。VLESS 的基础协议不提供同类的负载加密,通常通过 TLS 等外层机制保护连接。因此,“VLESS 的 Encryption 为 none”与“整条连接没有加密”不是同一件事,要继续查看外层安全设置。
| 核对项目 | VMess | VLESS |
|---|---|---|
| 身份认证 | 使用 UUID 等认证参数;现代配置通常采用 AEAD | 使用 UUID 识别用户;不能据此推断加密方式 |
| 协议层加密 | 按服务端要求选择,常见值包括 auto、aes-128-gcm、chacha20-poly1305 | 基础协议的 Encryption 通常为 none,不套用 VMess 的加密选项 |
| 外层安全 | 是否启用 TLS 取决于服务端;它与 VMess 协议层加密是不同层次 | 常见部署依赖 TLS 等外层安全机制,必须完整核对 |
| 传输方式 | 按服务端要求使用 TCP、WebSocket 等方式 | 同样由服务端决定,不能仅凭协议名推断 |
同一个协议可以组合不同传输与安全设置。比较连接是否正确时,应比较“协议 + 传输 + 安全参数”这一组,而不是只看 VMess 或 VLESS 两个名称。协议名称也不能单独决定实际速度;本地网络、服务器负载和中间链路都会影响结果。
Add Server:地址、端口与 UUID 怎么填
在 Home 点右上角添加按钮进入 Add Server,先选择 Type,再按已有参数填写。不同 Type 展开的项目不同,界面字段名称也可能随显示语言与应用界面调整;下表按参数含义核对,不要求每个项目都在同一屏出现。
- 先保存原始参数。保留服务商提供的完整配置说明。若已有订阅或分享内容,优先导入,再进入条目编辑页核对,不要凭记忆重建。
- 填写 Address。这里只放主机名或 IP 地址,例如
example.com。不要把网页地址中的https://、路径和查询参数一起填入。 - 填写 Port。使用服务端给出的数字端口。
443是常见 TLS 端口,但不是所有配置都使用它;不能因为启用 TLS 就把原来的端口改为 443。 - 粘贴 UUID。复制完整值,检查首尾空格、漏字符以及换行。UUID 是认证信息,不是备注名称,也不是订阅链接中的 token。
- 继续核对传输与 TLS。基础字段正确不代表已经完成配置;保存前还要检查下一节中的配套字段。
判断:格式正确不等于认证有效
UUID 即使满足 36 字符格式,也可能不属于当前服务端。地址能解析、端口能连接之后若仍然认证失败,应对照原始 UUID 与账户状态,不要靠生成新 UUID 来修复。
VMess 参数中还可能出现 AlterId。现代 VMess AEAD 配置通常使用 0;不要把旧说明中的其他数值作为通用答案。VLESS 不使用 VMess 的 AlterId 机制,不能把这个字段迁移过去。如果提供的旧参数与当前可选项不一致,应向原参数提供方确认,而不是随意替换。
TLS、SNI、Host 与 Path:分别对应哪一层
Address 决定向哪里建立连接,SNI 用于 TLS 握手中的服务器名称,WebSocket 的 Host 属于 HTTP 请求头,Path 属于请求路径。它们有时相同,有时不同;“都填成服务器地址”并不是通用配置方法。
| 参数 | 填写原则 | 常见错误 |
|---|---|---|
| Transport | 与服务端一致,例如 TCP 或 WebSocket | 把 WebSocket 改成 TCP,却继续保留原端口与其他参数 |
| TLS | 服务端要求启用时开启,并核对服务器名称与证书 | 只看到 443 就自行开启 TLS |
| SNI | 按服务端给定名称填写,通常不含协议前缀或路径 | 填写完整 URL,或使用与证书不匹配的 IP 地址 |
| Host | WebSocket 等场景按服务端指定请求头填写 | 误以为修改 Host 会同时修改 TLS 的 SNI |
| Path | 完整保留路径、大小写与必要的查询部分,例如 /ws | 漏掉开头的斜杠,或自行改成 / |
例如,一组说明明确写着 Port 为 443、Transport 为 WebSocket、TLS 开启、Path 为 /ws,就应逐项复现这一组合。这里的数值只是字段示例,不代表可用服务;实际填写时以用户已有参数为准。
部分 VLESS 配置还带有 Flow 或特定安全模式的附加字段。只有原始参数明确要求、且当前客户端支持对应组合时才填写。不要给普通 VLESS 条目随意加 Flow,也不要把其他安全模式的公钥等参数当作 TLS 的 SNI 使用。
导入之后:用 Global Routing 区分参数问题与规则问题
订阅导入能够减少手工转录,但仍要核对导入后条目的 Type、Port 和传输设置。订阅主要管理服务器条目,不应直接当作 Config 中的规则文件理解。订阅更新还可能覆盖条目的手动修改;测试前记录原值,必要时保留单独的测试副本。
在 Home 选中待测条目后,还需确认 Global Routing 的姿态。Config 按当前配置中的规则处理请求,Proxy 使普通请求统一走代理路径,Direct 则走直连;Scene 按所选场景定义处理,不能在未核对场景内容时把它当成固定的测试条件。
Config:验证完成后的规则使用
推荐依据当前配置判断请求去向。命中规则后执行对应策略,未命中前序规则的请求通常由 FINAL 处理,并不必然直连。
适合:已确认连接可用、需要按现有规则处理日常请求
Proxy:临时排除规则干扰
测试选定代理路径能否访问目标页面,减少请求被规则转为 Direct 的干扰;仍需核对选中的服务器以及其他可能生效的设置。
适合:判断失败来自连接参数,还是来自规则选择
Direct:检查本地直连基线
让普通请求走直连,用于确认当前网络访问原本可直连的网站是否正常。这不能验证 VMess 或 VLESS 的认证是否成功。
适合:先排除本地 Wi-Fi 或 Cellular 网络故障
判断:Proxy 可用而 Config 失败,先查规则
保持同一服务器与测试网址,只切换 Global Routing。若 Proxy 能打开、Config 不能,优先检查当前 Config 的命中规则、策略名称和 FINAL 去向,不要先更换 UUID 或协议类型。
测试过程中尽量固定网络与目标页面。若 Settings → On Demand 已启用,也要记录其触发条件,避免自动连接行为干扰手动测试。需要临时暂停时先保存原设置,测试结束后恢复;不要同时改传输、规则和自动连接条件。
连接失败:按外层到内层逐项排查
“延迟有数值”只能说明对应测试方法得到了响应,不能保证网页请求已经通过认证、TLS 和完整传输过程。排查时要记录具体表现,例如立即报证书错误、等待后超时,或只有某个域名无法打开,而不是只记“不能用”。
- 确认本地网络。用当前网络访问一个原本可直连的网站;必要时在 Wi-Fi 与 Cellular 间切换对照。保持其他参数不变,才有比较意义。
- 确认 Address 与 Port。检查地址是否多了空格或 URL 前缀,端口是否抄错。连接超时也可能由网络路径或服务端不可达引起,不应直接归因为 UUID 错误。
- 确认 TLS 与传输。核对 TLS 开关、SNI、Transport、Host 和 Path。证书错误先处理证书,WebSocket 握手错误则检查路径、请求头与服务端入口。
- 确认协议认证。核对 Type 和 UUID。VMess 还应检查加密选择、AlterId 及设备时间;VLESS 则检查原配置要求的 Encryption、Flow 等字段。
- 最后检查规则与 DNS。使用 Proxy 做对照。如果只是特定域名失败,再查看相关请求的解析与路由结果,不要一次替换所有 DNS 设置。
如果两种协议都能使用,也不能仅凭一次测速判断协议优劣。至少固定测试时段、网络、服务器条件与目标资源。对于参数填写问题,更可靠的完成标准是:保存后能够重复连接,目标请求走预期路径,恢复 Config 后规则行为也符合预期。
常见问题:UUID、加密选项与订阅更新
两个条目的 UUID 一样,能直接把 VMess 改成 VLESS 吗?
不能仅凭 UUID 相同转换。先取得服务端明确提供的 VLESS 参数,再在 Home → Add Server 中新建对应 Type,分别核对端口、传输与安全设置。保留原条目,避免覆盖唯一可用配置。
VLESS 显示 none,是不是应该改成 aes-128-gcm?
不要把 VMess 的加密值套到 VLESS。先确认 none 对应的是协议层 Encryption,再核对 TLS 或原参数指定的外层安全机制。是否安全需要看完整组合,不能只看一个字段。
更新订阅后,手工修改的 Path 又变回去了怎么办?
先保存更新前后的差异,确认订阅提供的原始值。需要隔离测试时保留独立副本,不要持续修改受订阅更新管理的同一条目;长期修正应由原参数提供方确认。
只把端口改成 443,为什么还是连不上?
端口号不负责自动配置 TLS。回到条目编辑页,逐项核对服务端实际监听端口、TLS、SNI 和传输方式;只有服务端存在对应入口时,这一组合才可能建立连接。
协议和 UUID 都对,但只有部分网页失败,还要重建条目吗?
先在 Home → Global Routing 临时选 Proxy,用同一网址复测。若恢复访问,检查 Config 的规则与策略;若仍失败,继续检查该域名的解析和连接错误,不必立即重建全部条目。