本文速览

已有订阅时,先选客户端内核能够完整识别的节点,不要只按协议名称判断速度。自行配置时,再比较认证方式、加密层和传输条件。本文适合需要区分 VMess、VLESS、Trojan、Shadowsocks 的用户,读完可以核对关键字段,判断是否需要 TLS,并按桌面与安卓的实际支持范围选型。

先区分协议、传输与加密层

VMess、VLESS、Trojan、Shadowsocks 是代理协议,不是客户端名称。v2rayN 是桌面客户端,v2rayNG 使用 Xray 内核,v2flyNG 使用 V2Fly 内核。客户端负责编辑、导入和运行配置;真正建立连接的是所选内核。界面能够导入链接,不等于内核支持链接中的每一种组合。

一个节点至少包含服务器地址、端口、认证信息和传输设置。协议负责规定怎样认证、怎样表达目标地址;TCP、WebSocket 等传输承载连接;TLS 或 REALITY 等安全层保护相应的传输过程。排障时把这几层分开,才能避免把 WebSocket 路径写错误判成协议不兼容。

四种协议的加密与握手对照

协议的认证和数据加密不是同一件事。UUID 或密码用于证明访问资格,不能单独说明链路是否已加密。下表按常见部署方式比较;具体可用字段仍以双方内核实现及服务端配置为准。

协议 认证与握手 加密与 TLS 关系 重点核对项
VMess 以 UUID 为用户凭据,现代配置使用 AEAD 认证机制;系统时间参与认证过程。 具备协议自身的数据保护机制,常见载荷加密方法包括 AES-GCM 和 ChaCha20-Poly1305;TLS 是可叠加的外层。 UUID、加密选项、系统时间、传输类型与 TLS 设置。
VLESS 以 UUID 认证,协议头较精简;部分组合还要求匹配 flow。 通常所说的基础 VLESS 配置不提供载荷加密,应配合 TLS、REALITY 等安全层;扩展能力取决于内核。 UUID、security、flow,以及 TLS 或 REALITY 的配套参数。
Trojan 在受 TLS 保护的连接内发送基于密码的认证信息及目标请求。 标准部署依赖 TLS 保护认证和业务数据,需要正确处理证书验证。 密码、服务器名称、证书信任与传输设置。
Shadowsocks 根据所选方法使用共享密码或规定格式的密钥,协议内封装目标地址。 AEAD 方法自身提供认证加密,基础部署不要求 TLS;旧式方法与不同代际方法不能混为一谈。 method、密码或密钥、端口,以及双方对该方法的支持。

配置复杂度:字段少不等于更容易连通

VMess 的常见导入信息包含 UUID、加密选项和传输参数。现代 VMess AEAD 配置通常使用 alterId=0,不应照抄旧教程中的非零值来尝试“增强兼容性”。连接认证失败时,应同时检查设备时间和服务端时间,而不是反复更换 UUID。

VLESS 的基础字段较少,但启用特定安全层后,需要核对的组合会增加。例如 VLESS 配合 REALITY 时,服务器名称、公钥、short ID 等参数需要与服务端要求对应。xtls-rprx-vision 是特定 flow 值,不是所有 VLESS 节点都应该填写,也不能随意加到 WebSocket 配置中。

  1. 先确认协议:从服务提供方说明或原始订阅中核实,不按端口猜测。
  2. 再确认认证:UUID、密码、密钥应完整复制;去除复制时意外加入的空格或换行。
  3. 然后核对传输:WebSocket 的路径与 Host、TLS 的服务器名称分别处理,三者可能不同。
  4. 最后核对扩展:只有服务端明确启用的 flow、安全层与方法才填写,避免手动补上无关参数。

Trojan 需要关注证书是否有效,以及服务器名称是否符合证书。Shadowsocks 则必须准确匹配加密方法,例如 aes-128-gcm 与 chacha20-ietf-poly1305 不能互换。涉及 Shadowsocks 2022 方法时,还要确认内核支持情况与密钥格式;不能把普通口令直接当成任意方法都能使用的密钥。

场景选型:先看服务端,再看客户端

下面的推荐以“新建配置、使用 Xray、能够管理服务端”为前提,不是速度排名。已有稳定订阅时,保留完整兼容的现有协议通常比主动改造更省事。延迟和吞吐还取决于线路、拥塞、服务器负载、传输封装与设备性能,不能从协议名称直接推导。

VLESS:新建 Xray 配置

推荐

在双方支持一致、能够正确配置 TLS 或 REALITY 的条件下,可作为新建方案的优先候选。先确定安全层与传输组合,再填写认证参数。

适合:可管理服务端、使用 Xray、能够维护配套安全参数。

VMess:延续现有部署

已有可用的 VMess 订阅或服务端时,继续使用通常更直接。需要同时核对 AEAD 配置、系统时间,以及既有的 WebSocket 或 TLS 参数。

适合:已有 VMess 服务、需要与既有配置保持一致。

Trojan:已有证书与域名维护流程

配置重点集中在密码和 TLS。证书续期、服务器名称与信任链需要持续维护,不能把关闭证书验证作为长期方案。

适合:能够维护域名、有效证书与标准 TLS 服务。

Shadowsocks:明确方法的精简配置

基础连接只需匹配地址、端口、方法及凭据。选用双方支持的现代 AEAD 方法,并单独确认 UDP 等实际需求。

适合:已有明确的加密方法和凭据、希望减少传输层配置项。

桌面与安卓共用订阅的核对方法

同一条订阅可以包含多种协议。v2rayN 与 v2rayNG 可以使用同一订阅来源,但两端是否得到相同的可用节点,还受订阅格式、客户端解析能力和内核支持范围影响。尤其是 flow、REALITY 与较新的加密方法,导入成功后仍应检查节点详情。

双端方案:相同订阅,分别核对内核与入口

桌面端 v2rayN
  • 先确认实际运行的内核,再选择对应节点。
  • 检查节点的协议、传输、安全层与 flow 是否完整。
  • 在「设置」→「参数设置」中核对本地监听端口;具体分组名称可能随界面调整。
  • 区分系统代理是否开启与远端节点是否连通。
安卓端 v2rayNG / v2flyNG
  • v2rayNG 使用 Xray,按该内核支持的组合选择节点。
  • v2flyNG 使用 V2Fly,不能按 Xray 的扩展能力推定兼容。
  • 导入后逐项核对认证、传输及安全参数。
  • 完成系统 VPN 授权,再用实际应用验证连接。

订阅来源可以共用,运行配置需要分别验证;不要把一端可用当作另一端必然可用。

订阅链接可能包含访问凭据,应按敏感信息保存。排查导入差异时,可以比较协议、字段是否缺失,但不要公开完整订阅地址、UUID、密码或密钥。向他人提供日志前,也应去除服务器地址与认证内容。

端口与连通性:用明确入口排除误判

本地代理端口与远端服务端口是两回事。下面的 10808、10809 仅用于演示本地入口,443 仅表示常见 TLS 服务端口;它们都不是每个节点必须采用的固定值。请先检查客户端实际监听项,再运行命令。

10808
示例本地 SOCKS 入口端口
10809
示例本地 HTTP 入口端口
443
常见远端 TLS 服务端口

如果已确认本地 SOCKS 入口监听于 127.0.0.1:10808,可以用以下命令显式指定代理。Windows PowerShell 中使用 curl.exe;其他已安装 curl 的终端可使用 curl。这里访问保留示例域名,只用于说明测试方法,不代表测速结果。

curl.exe --head --connect-timeout 10 --max-time 20 --proxy socks5h://127.0.0.1:10808 https://example.com

socks5h 表示把目标域名交给代理侧处理。若实际配置的是 HTTP 入口,则应使用对应代理地址,不要只把 SOCKS 端口改成另一个数字却保留错误的协议前缀。

curl.exe --head --connect-timeout 10 --max-time 20 --proxy http://127.0.0.1:10809 https://example.com

常见问题:更换协议前先核对什么

VLESS 的 encryption 是 none,是不是没有保护?

基础 VLESS 中的 encryption=none 表示该协议层不承担载荷加密,不等于整个连接没有保护。打开节点详情,继续检查 TLS 或 REALITY 是否按服务端要求启用。不要只凭这一项判断,也不要把未加保护的基础 VLESS 直接用于不可信网络。

VMess 能用,直接改成 VLESS 会更快吗?

不能直接改。服务端必须提供 VLESS 入口,UUID、端口、传输和安全层也要匹配。若有两个有效节点,应在同一设备、相近时间、相同目标下重复比较,再结合丢包与日志判断,而不是只比较一次延迟。

Trojan 提示证书错误,勾选跳过验证可以吗?

先检查节点的服务器名称是否正确、设备时间是否正常,以及证书是否过期。若连接地址是 IP,TLS 服务器名称仍可能需要填写证书对应域名。长期跳过验证会失去关键身份检查,应修正配置或服务端证书。

Shadowsocks 密码正确,为什么还是连不上?

同时核对 method、端口和密钥格式,再确认两端内核都支持该方法。若普通网页可用而特定应用失败,还应检查 UDP 支持、路由规则及目标解析;不能仅凭密码一致就排除配置问题。

更换协议会改变分流规则吗?

协议定义远端连接方式,路由规则决定流量送往哪个出站。更换节点后,检查路由引用的 outboundTag 是否仍对应有效出站,并用同一目标复测。安卓还要检查分应用设置,避免把应用绕行误判为节点失效。

最终选择顺序是:先确认服务端提供什么,再确认内核完整支持什么,最后比较维护成本和实际连接表现。已有配置优先保证兼容;新建配置优先明确安全层与认证要求。协议名称只是起点,完整参数与运行日志才是判断依据。