Colitu Adaptive Connect
Colitu Adaptive Connect 如何选择服务器、按顺序尝试五种连接模式、检查真实流量是否通过,并在某种模式被封锁时自行回退。
Adaptive Connect 是每个 Colitu 应用中负责决定你的设备如何连接到 Colitu 服务器的部分。你按下“连接”;Colitu 面板会选择一台服务器,应用则会尝试多种连接模式,直到其中一种真正能承载你的流量。你无需选择协议、端口或密钥,也没有任何需要配置的东西。
当前这一代 Adaptive Connect 2.0 增加了热备用路径,以及对每种连接模式的监测。其设计与测量数据见 Adaptive Connect 2.0 技术报告。
本页是协议中心(Protocol Hub)的起点。每种连接模式都有自己的页面,介绍该协议的工作原理,以及它的强项和弱点。
四个协议家族,五种连接模式
每台 Colitu 服务器都提供同样的五种连接模式。它们属于四个协议家族:Hysteria2、VLESS(有 Reality 和 XHTTP 两种变体)、Trojan 和 Shadowsocks。这些模式被有意设计得彼此不同:一种运行在 UDP 上,其余运行在 TCP 上;四种以不同的方式看起来像 HTTPS 或 HTTP/3,另一种则完全不模仿任何东西。能阻止其中一种的过滤系统,很少会以同样的方式阻止所有模式。
| 模式 | 传输层 | 伪装 | 最适合 |
|---|---|---|---|
| Hysteria2 | UDP、QUIC、TLS 1.3 | 看起来像是访问带有效证书的网站的 HTTP/3 | 移动数据、繁忙的 Wi-Fi、会丢包的长距离线路 |
| VLESS Reality | TCP、带 Reality 的 TLS 1.3 | 借用某个真实第三方网站的 TLS 握手 | 使用深度包检测(DPI)的网络 |
| VLESS XHTTP | TCP、Reality 之上的 HTTP 风格请求 | Reality 层内的 HTTP 请求 | 会切断长时间单个 TCP 连接的网络 |
| Trojan | TCP、TLS 1.2/1.3 | 看起来像是访问带有效证书的网站的 HTTPS | UDP 被封锁时基于 TLS 的备用方案 |
| Shadowsocks 2022 | TCP、AEAD 加密 | 无:数据流看起来像随机数据 | 过滤较轻的网络、开销低 |
第 1 步:选择服务器
在尝试任何协议之前,Colitu 面板会为你的设备选择服务器:
- 如果你选择了一个位置并且该位置有可用的服务器,就使用该位置。如果没有,面板会改为选择另一个位置上的服务器,而不是直接失败(备用位置)。
- 在候选服务器中,它优先选择当前负载最低的一台。
- 该选择对每个用户和设备保持 24 小时稳定,因此你不会在每次重新连接时都落到不同的服务器和 IP 地址上。
你仍然可以在应用中选择自动选择、某个位置或某台特定的服务器;Adaptive Connect 负责处理该选择之下的一切。服务器位置及其服务检查列在服务器页面。
第 2 步:连接顺序
随后,应用按固定的优先级尝试这五种模式。顺序因平台而略有不同:
| 平台 | 顺序 |
|---|---|
| Android(包括 Android TV)和 iOS | Hysteria2 → VLESS Reality → VLESS XHTTP → Trojan → Shadowsocks 2022 |
| Windows 和 Linux | 先 Hysteria2,然后是各 TCP 模式,按测得的 TCP 连接时间排序;无法到达的模式排在最后 |
Hysteria2 在所有平台上都排在第一位,因为在 UDP 能够通过时,它最能应对丢包。在 Windows 和 Linux 上,应用会测量各个 TCP 模式在你当前网络下的响应速度,并优先尝试最快的一个。
第 3 步:检查流量是否真正通过
“已建立”的连接不一定有用。有些过滤系统会让握手完成,然后悄悄丢弃其后的一切。因此,Adaptive Connect 不会只相信握手:
- 应用启动一种模式,并通过它发送真实流量。
- 它等待这些流量通过检查:在放弃该模式之前,Android 上约 12 秒,iOS 上约 9 秒。
- 如果检查通过,你就已连接。
- 如果该模式没有承载任何流量,它会被往后放,并尝试顺序中的下一种模式。
失败的模式如何被往后放取决于平台:Windows 和 Linux 将其移到队列末尾 10 分钟,Android 将其记为停滞,iOS 则施加停滞惩罚,使其稍后再试。
连接期间
- Android 会记住每台服务器上最后一次可用的模式,下次从它开始。仅允许一种模式通过的网络,不会让你在每次连接时都经历完整的一轮尝试。
- Windows 每 2 秒检查一次隧道。如果它停止承载流量,应用会重新连接,Adaptive Connect 会再次运行。默认开启的 Windows 断网保护 (kill switch),会在隧道丢失时阻止流量在隧道之外流出。它在 TUN 模式和代理模式下均有效;如果应用或 VPN 内核崩溃,阻断会保持,直到 Colitu 重新连接;详情见安全页面。
从有效的方式中学习
应用会向 Colitu 面板报告哪些模式可用、哪些不可用。这些报告经过汇总,用于改进默认设置。它们描述的是连接结果,而不是你的活动:Colitu 服务器上的访问日志是关闭的,正如安全页面所说明的。
为什么你不能手动选择协议
所有 Colitu 应用(Windows、Android、iOS、Linux)都没有手动切换协议的开关,这是有意为之:
- 可用的模式会变化。 在家庭 Wi-Fi 上可用的协议,一小时后在移动数据上可能失败,或者在过滤规则更新后在同一网络上失败。自动检查比人工更改设置反应更快。
- 错误的手动选择看起来像是 VPN 坏了。 固定的选择在网络变化后仍然是错的,而应用对此无能为力。
- 没有什么需要复制或输错的。 服务器地址、端口和密钥在你登录后以加密形式交付给应用。它们从不显示,也从不公开。
如果连接仍然失败,指南 VPN 无法连接列出了需要检查的内容。
局限
- Adaptive Connect 只能在网络放行的模式中进行选择。如果某个网络封锁了所有到未知服务器的加密连接,或只允许流量通过带过滤的网络代理,那么没有任何模式能够通过。
- 在带有登录页面(强制门户)的酒店和咖啡馆 Wi-Fi 上,请先在浏览器中登录。在此之前,任何 VPN 都无法连接。
- 在过滤严格的网络上,依次尝试各模式需要时间,因此首次连接可能比在干净的网络上明显更久。在 Android 上,对上次可用模式的记忆会缩短之后的连接时间。
安全与加密
每种模式都会对你的设备与服务器之间的流量进行加密。具体细节因协议而异:Hysteria2、VLESS Reality 和 VLESS XHTTP 使用 TLS 1.3,Trojan 使用 TLS 1.2 或 1.3,Shadowsocks 2022 使用 AEAD 密码 2022-blake3-aes-256-gcm。连接凭据按设备和服务器分别签发,因此移除一台设备会撤销它在所有服务器上的访问权限。切换模式绝不意味着回退到未加密的连接:全部五种模式都是加密的。
来源
- Hysteria 2 documentation
- Project X (Xray) documentation
- REALITY on GitHub
- Trojan protocol documentation
- sing-box documentation
- SIP022: Shadowsocks 2022 edition
立即体验
Adaptive Connect 内置于每个 Colitu 应用中,包括每月 10 GB、无需绑定银行卡的免费套餐。可为 Windows、Android、iOS 或 Linux 下载 Colitu,或先浏览服务器位置。