VMess 与 VLESS 是代理协议,不是客户端名称。先看一分钟对照,再按需检查配置:VMess 有自己的加密机制,认证依赖时间;常见 VLESS 配置把连接保护交给 TLS 或 REALITY。普通用户应保留订阅下发的整组参数,不要只把协议下拉框从 VMess 改成 VLESS。下文按加密、时间、传输、导入和排错展开。
一分钟对照:协议、传输与连接保护
节点编辑页 →「协议」「传输方式」「TLS」:这三处需要分开看。VMess、VLESS 负责代理通信的格式与身份验证;TCP、WebSocket 等负责承载数据;TLS 或 REALITY 则是另一层连接保护配置。订阅里看似很长的一串参数,实际是在描述这些层如何组合。
| 检查项 | VMess | VLESS |
|---|---|---|
| 身份凭据 | 通常使用 UUID,还要留意认证相关字段 | 通常使用 UUID,部分组合还要求匹配 flow 等字段 |
| 协议层加密 | 可使用协议自身的数据加密;具体取决于 security 设置 | 常见配置使用 encryption=none,连接保护交给外层 |
| 时间要求 | 认证有时间窗口,客户端和服务端需要准确时钟 | 没有 VMess 式时间认证,但证书等仍可能受时间影响 |
| 常见组合 | VMess + WebSocket + TLS | VLESS + WebSocket + TLS,或 VLESS + TCP + REALITY |
| 能否直接互换 | 不能。服务端协议、凭据、传输及安全参数必须对应。 | |
判断:先核对整组参数,再比较协议名称
遇到导入后不能连接,先把端口、传输方式和 TLS/REALITY 设置与提供方说明逐项对照。协议名称相同,只能证明其中一项相同,不能证明配置完整。
加密区别:VLESS 的 none 不等于明文连接
节点编辑页 →「加密方式」:先确认这个字段属于哪一层。VMess 的 security 与 VLESS 的 encryption 不是 TLS 开关。常见 VLESS 链接中的 encryption=none,表示不在 VLESS 这一层提供数据加密,并不表示外层 TLS 也关闭了。
- VMess:可使用 AES-GCM、ChaCha20-Poly1305 等加密方式;客户端可能显示为
auto。这里的自动选择不代表自动补齐错误的地址、端口或传输参数。 - VLESS + TLS:VLESS 处理代理协议,TLS 负责保护客户端到 TLS 终止点之间的连接。应正常验证证书与服务器名称。
- VLESS + REALITY:需要支持该功能的内核,并正确填写服务器名称、公钥、短 ID 等参数;这些值应由服务提供方给出,不能自行猜测。
- VLESS 不配连接保护:不能仅凭 UUID 就认为链路已被加密。UUID 是身份凭据,不是替代 TLS 的加密开关。
端口 443 也不能单独证明启用了 TLS。端口只是服务入口编号,真正的行为取决于双方配置。反过来,TLS 也可以工作在其他端口,因此不要把订阅中的端口统一改成 443。
时间校验:VMess 连接失败先同步时钟
Windows「设置」→「时间和语言」→「日期和时间」→「立即同步」;安卓「设置」→「系统」→「日期和时间」→开启自动设置时间。安卓菜单名称随厂商变化,可以在系统设置中搜索“日期和时间”。先让设备获得准确时间,再重新连接。
VMess 的认证依赖时间窗口。设备休眠后时钟漂移、手动改过日期,或服务端时间不准,都可能造成认证失败。日志不一定直接写“时间错误”,所以节点突然全部不可用时,同步时钟是一项成本很低的检查。
- 确认自动设置时间已开启,并完成一次网络同步。只修改时区显示,不一定能修正实际时钟。
- 重新连接原节点并查看日志,不要同时修改 UUID、传输和加密方式,否则难以判断是哪一步恢复了连接。
- 若其他设备同一节点正常,优先检查本机时间、网络与客户端配置;若所有设备同时失败,再向提供方确认服务端状态。
VLESS 没有 VMess 这种时间认证依赖,但这不代表可以忽略系统日期。TLS 证书有有效期,错误日期仍可能触发证书尚未生效或已经过期的提示。切换协议不能替代修正系统时间。
传输组合:WebSocket、TLS 与 REALITY 怎么看
节点编辑页 →「传输方式」→对应的主机名、路径或服务名:这些字段必须与服务端相符。VMess 和 VLESS 都可以配合多种传输方式,但是否能用某个组合,要看客户端实际调用的内核、内核版本和服务端部署,不能只凭客户端名称判断。
| 订阅中的组合 | 重点核对字段 | 常见误改 |
|---|---|---|
| VMess / VLESS + WebSocket + TLS | 端口、WebSocket path、Host、TLS serverName | 认为 Host 与 serverName 一定相同,把两者强行统一 |
| VLESS + TCP + REALITY | 服务器名称、公钥、短 ID,以及提供方要求的 flow | 漏填公钥,或把其他节点的短 ID 复制过来 |
| 使用 gRPC 的配置 | serviceName、TLS 设置及内核支持情况 | 把 serviceName 当成 WebSocket path 填写 |
例如提供方要求 WebSocket 路径为 /proxy,就应原样保留;这里的路径只是字段示例,不是任意服务器都能使用的值。域名、路径通常区分具体用途,某些字段还区分大小写。导入能成功只说明链接被解析,不说明这些值已经通过服务端验证。
REALITY 与 Vision 也不是同一个开关。REALITY 属于连接安全配置;Vision 通常体现为 xtls-rprx-vision 这样的 flow 值,只有指定组合需要它。不要给所有 VLESS 节点都追加 Vision,也不要把 REALITY 当作 WebSocket 的一种路径格式。
订阅导入:保留参数,再选择运行内核
v2rayN 从主窗口「订阅分组」进入分组设置,添加提供方给出的订阅地址并更新;单条分享链接可用「服务器」中的剪贴板导入入口。v2rayNG 可从主界面「+」→「从剪贴板导入」导入单条配置,订阅则在侧栏「订阅分组设置」中添加。不同版本的文字可能略有差异,以入口用途为准。
导入方案:按设备检查同一份配置
桌面端:v2rayN
- 导入后打开节点编辑页,确认协议与传输没有缺失。
- 使用 REALITY 配置时,确认实际调用的是支持该配置的 Xray 内核。
- 连接后设置系统代理,再用浏览器访问测试。
安卓端:v2rayNG
- 导入同一份订阅,核对节点参数是否完整。
- 首次连接允许系统 VPN 授权,确认服务已经启动。
- 若启用分应用代理,确认测试用的浏览器在接管范围内。
同一份订阅可以用于不同设备,但两端仍需分别更新;本地编辑、分流规则和系统权限不会随订阅自动同步。
v2rayNG 使用 Xray 内核;v2flyNG 使用 v2fly 内核。两者不能因为名称相近就视为功能完全相同。尤其遇到 REALITY 或特定 flow 字段,应核对内核支持,不要把“能识别 VLESS”理解成“支持所有 VLESS 组合”。
保留订阅下发的完整组合
推荐使用提供方明确支持的客户端与内核,保留协议、传输、安全和认证字段。先建立可用基线,再调整本地路由。
适合:已有订阅,希望稳定导入与日常连接
手动填写服务端配置
逐项录入 UUID、端口、传输参数与安全配置。只有掌握服务端实际设置,才适合修改协议或测试新组合。
适合:管理自己的服务端,或正在按提供方说明排错
常见问题:切换协议、测速与访问验证
能把 VMess 节点直接改成 VLESS 吗?
不能只改客户端下拉框。先向提供方获取独立的 VLESS 配置,或在自管服务端配置对应入站,再导入配套参数。即使地址、端口和 UUID 看起来相同,服务端也不会自动切换协议。
VLESS 一定比 VMess 快吗?
不能这样判断。先在同一网络、同一时段、同一目标上比较实际访问,再观察持续下载和连接稳定性。线路拥塞、服务器负载与传输组合都可能影响结果;不同服务器的一次延迟数值,不能用来证明协议优劣。
节点显示延迟,为什么网页还是打不开?
先确认测的是 TCP 连通性还是真实代理请求。TCP 端口可达不等于认证成功。桌面检查系统代理是否启用,安卓检查 VPN 服务与分应用范围,再看日志中的认证、握手或 DNS 错误。
VMess 的 alterId 应该填多少?
现代 VMess AEAD 配置通常使用 alterId=0。如果旧链接带有非零值,不要靠反复尝试数字修复;让提供方确认当前服务端认证方式,并索取匹配的配置。旧教程中的数字不能直接套用到新订阅。
最后把“节点能连”与“应用走代理”分开验证。先确认核心没有报配置错误,再确认目标应用确实被接管。协议负责连接的一部分,系统代理、VPN 权限、DNS 和路由分流仍分别决定流量如何到达这条连接。
- 连接失败:按系统时间 → 地址与端口 → 认证参数 → 传输与安全字段的顺序检查。
- 只有部分网站失败:保留原节点,检查 DNS、路由命中与目标站点情况,不急着换协议。
- 需要求助:记录客户端与内核版本、错误发生时间和经过脱敏的日志;分享前遮去订阅地址、UUID 及其他凭据。