Colitu VPN
协议

Hysteria2 还是 VLESS Reality:该用哪种协议

两种现代 VPN 协议的对比:基于 UDP 的 QUIC 与基于 TCP 的 TLS。丢包链路上的速度、网络限制 UDP 时会怎样、它们在线路上各是什么样子,以及 Colitu 如何替你自动选择。

Hysteria2 和 VLESS Reality 是 Colitu 中的两种连接模式。它们面向不同的网络环境,实际差别归结为底层传输的选择:Hysteria2 运行在 UDP 之上,VLESS Reality 运行在 TCP 之上。本文说明这对速度、对受限网络以及对网络观察者所见内容意味着什么,以及各自在什么情况下更合适。

Hysteria2 简介

Hysteria2 是一种基于 QUIC 的代理协议,QUIC 正是 HTTP/3 所用的、建立在 UDP 之上的传输层。握手是标准的 TLS 1.3,服务器出示有效证书。连接建立后,应用通过一个 HTTP/3 请求完成身份验证;没有凭据的请求,得到的回应与普通网站服务器相同。你设备上的每个 TCP 连接各占一条独立的 QUIC 流,而通话、游戏和 DNS 等 UDP 流量则以 QUIC 数据报的形式传输。

VLESS Reality 简介

VLESS Reality 把极简的代理协议 VLESS 与无需自有证书的 TLS 1.3 层 Reality 结合在一起。应用发起的握手带有一个真实第三方网站的名称,并模仿 Chrome 的指纹。一小段认证信息被隐藏在 ClientHello 中:如果有效,服务器自己完成握手,隧道随之建立;如果无效,连接会被逐字节转发到那个真实网站。Colitu 还启用了 XTLS Vision,用来减弱嵌套 HTTPS 产生的“TLS 套 TLS”特征。

传输层:UDP 上的 QUIC 与 TCP 上的 TLS

这是两者的核心区别。

  • Hysteria2 使用 UDP 上的 QUIC。 同一连接中的各条流相互独立,某条流中丢失的数据包不会拖住其他流。
  • VLESS Reality 使用 TCP 上的 TLS 1.3。 它是一条有序的字节流,与浏览器访问任何 HTTPS 网站时建立的连接属于同一类型。

没有哪一种在所有情况下都更好,它们适合不同的网络。

丢包链路上的速度

经典的 TCP 拥塞控制把每一次丢包都视为链路过载的信号,并随之降速。在移动数据、拥挤的 Wi-Fi 或漫长的国际线路上,丢包往往另有原因,例如干扰或信号微弱。此时 TCP 会在没有必要的情况下降速,而且恢复得很慢。

Hysteria2 自带名为 Brutal 的拥塞控制。已知可用带宽时,它按该速率持续发送,并用重传来弥补丢包;未设置带宽时,则退回到 BBR,由它估计带宽,而不是对每个丢包都作出反应。结果是在丢包链路上吞吐更平稳。由于 UDP 流量以数据报形式传输,通话和游戏也能受益。

VLESS Reality 的表现与任何 TCP 协议一样。在丢包很少、稳定的有线或 Wi-Fi 连接上,它表现良好,Vision 使开销保持在较低水平。在丢包严重的链路上它会变慢,而 Hysteria2 在那里通常更快。

网络限制 UDP 时

部分企业、酒店、校园和移动网络会限制 UDP 或 QUIC。在这类网络中,Hysteria2 无法连接或速度很慢。此时 VLESS Reality 是更好的选择,因为它运行在 TCP 上,普通 HTTPS 能用的地方它都能用。

对于把发往陌生地址的 QUIC 与 TCP 区别对待的网络,情况也是一样。文章 UDP 受限:这对你的 VPN 意味着什么详细介绍了原因和应对方法。

它们在线路上各是什么样子

  • Hysteria2 看起来像是访问一个持有有效证书的网站的 HTTP/3。被动观察者只能看到 QUIC 流量,不带凭据的探测则会得到普通网站服务器的回应。
  • VLESS Reality 看起来像是与一个真实第三方网站进行的 TLS 1.3 握手,指纹接近浏览器。没有密钥的探测会被转发到该网站,看到的是它真实的证书和页面。

两者的设计目的都是让连接看上去与普通网页流量相似,区别在于方式:一个依靠自有证书和 HTTP/3,另一个借用真实网站的握手。

并排对比

Hysteria2VLESS Reality
传输UDP,QUICTCP
握手QUIC 内的 TLS 1.3带 Reality 的 TLS 1.3
外观访问持有有效证书网站的 HTTP/3与真实第三方网站的 TLS 握手
拥塞控制自有(Brutal;未设带宽时用 BBR)经典 TCP
丢包链路(移动网络、拥挤 Wi-Fi)速度保持良好与任何 TCP 协议一样会变慢
通话与游戏UDP 以数据报传输在 TCP 流内传输
UDP 受限的地方无法连接或速度很慢可用
对探测的反应像网站服务器一样应答转发到真实网站
稳定的有线或 Wi-Fi 连接很好很好

那么该用哪一种?

  • 使用移动数据的手机、拥挤或较远的 Wi-Fi、长距离线路、通话和游戏: Hysteria2。
  • 限制 UDP 或 QUIC 的网络,或 Hysteria2 无法连接的地方: VLESS Reality。
  • 丢包很少的稳定连接: 两者都表现良好。

请记住,没有任何技术能提供永久的保证。网络会变化,今天在某个网络上可行的做法,明天可能表现不同。这正是不要把自己绑定在单一协议上的原因。

Colitu 替你选择

你不需要自己选择。每个 Colitu 应用中的自动模式 Adaptive Connect 会按固定顺序尝试各连接模式,并在保留某个模式之前确认真实流量确实在通过。

Hysteria2 在所有平台上都排在第一位,因为在 UDP 能通过时,它最能应对丢包。如果 UDP 受限、握手失败或隧道没有传输任何数据,应用就会换到下一个。在 Android 和 iOS 上,下一个是 VLESS Reality,之后依次是 VLESS XHTTP、Trojan 和 Shadowsocks 2022。在 Windows 和 Linux 上,应用按测得的连接时间依次尝试各 TCP 模式。没有传输任何数据的模式会被往后排,这样下一次连接就不会在它身上浪费时间。

所有模式都经过加密,因此切换模式绝不意味着退回到未加密的连接。各自的细节见协议中心的 Hysteria2、VLESS Reality 和 Adaptive Connect 页面。

参考资料