01
一张表看完四种协议
表里的每一列都对应一个可复现的测量动作:握手用三个地区的探针各跑 100 次。吞吐用单流 iperf3 打 60 秒,CPU 取单核占用峰值的中位。
| 协议 | 握手 | 首包 | 单流吞吐 | 单核 CPU | 可探测性 | 典型场景 |
|---|---|---|---|---|---|---|
| WireGuard | 1 RTT | 38 ms | 940 Mbps | 12% | 中 | 大文件、4K 视频、局域网互通 |
| OpenVPN | 2 RTT | 96 ms | 310 Mbps | 62% | 高 | 老网络兜底、TCP 443 通道 |
| Trojan | 1 RTT + TCP 1 RTT | 112 ms | 620 Mbps | 34% | 低 | 只放行 443 的办公网与校园网 |
| Hysteria2 | 1 RTT(重连 0 RTT) | 64 ms | 780 Mbps | 41% | 中低 | 跨境高丢包、直播推流、移动网络 |
读这张表有两个正确姿势。第一种是横向看同一行:WireGuard 的 38 毫秒首包配 940 Mbps 吞吐,意味着「快且连得快」,代价是可探测性中等。Hysteria2 的 64 毫秒首包配 780 Mbps,是「稍慢一点但抗丢包」。第二种是纵向看同一列:握手一列从 1 个往返到 2 个往返,吞吐一列从 310 到 940 Mbps。这两个跨度决定了 80% 的体感差异。
iperf3 -P 1 -t 60 复测,四协议的吞吐排序不变,绝对值和上表相差不超过 4%。差异来自协议本身,而不是当次线路波动。02
WireGuard:握手最短,开销最低
WireGuard 的设计目标只有一个——用尽可能少的代码做尽可能快的事。整个协议约 4,000 行,握手走 Noise_IK 模式。数据面用 ChaCha20-Poly1305 加密,转发在内核态完成。

握手结构
发起方发出 148 字节的握手发起包,响应方回 92 字节,1 个往返后即可发送数据。每 120 秒重新协商一次密钥,协商在数据流中穿插完成,用户无感。
数据面开销
ChaCha20-Poly1305 在支持 AVX2 的 CPU 上单核可处理 2.4 Gbps。千兆网卡上 WireGuard 跑到 940 Mbps 时,瓶颈是网卡而不是加密。
- 握手往返
- 1 RTT
- 首包(香港)
- 38 ms
- 重协商间隔
- 120 s
- UDP 端口
- 51820(可自定义)
- 加密
- ChaCha20-Poly1305
- 代码规模
- 约 4,000 行
- 优点是简单:没有 TLS 握手、没有证书链、没有用户态拷贝,一台 1 vCPU 的机器也能跑满百兆。
- 缺点也来自简单:握手包结构固定,首字节取值 1 至 4 可被主动探测识别;UDP 被限速的网络里会直接失效。
- 适合大文件、4K 视频、局域网互通这类「要带宽不要花活」的场景。快喵VPN 在三类场景里都把 WireGuard 放在第一顺位。
03
OpenVPN:兼容性换来的开销
OpenVPN 已经运行了二十多年,几乎每种网络设备都放行它。代价是三层结构:TLS 控制通道、独立数据通道、以及中间那次用户态拷贝。

握手 2 个往返
TLS 控制通道先跑完 1 个往返,随后协商数据通道密钥再走 1 个往返,合计 2 RTT。香港节点实测 96 ms,比 WireGuard 多 58 ms。
吞吐受单核限制
数据包要经过内核到用户态再回内核,两次拷贝;单核实测 310 Mbps,达到 300 Mbps 以上时 CPU 会先满。
可探测性高
握手报文带有固定操作码与魔数,主动探测即可判断。快喵VPN 的应对方式是把 TCP 模式藏在 443 端口里,用流量的时序特征降低识别率。
| 模式 | 握手 | 首包 | 单流吞吐 | 丢包 1% 时 | 可达性 |
|---|---|---|---|---|---|
| UDP | 2 RTT | 96 ms | 310 Mbps | 降到 214 Mbps | 需放行 UDP |
| TCP 443 | 2 RTT + TCP 1 RTT | 157 ms | 188 Mbps | 降到 96 Mbps | 只放行 443 也能连 |
这张表解释了为什么快喵VPN 把 OpenVPN 定位成兜底档:它永远能连上,但永远不是最快的。在只放行 443 的企业网里,它有不可替代的位置;在家庭宽带上,它是最该被替换掉的那一档。
04
Trojan:把流量装进标准 TLS
Trojan 的思路是把代理流量伪装成一次普通的 HTTPS 访问:443 端口、真实证书、标准 TLS 1.3 握手。服务端在应用层再按密码哈希分流。

握手如实测量
TLS 1.3 的 1 个往返加上 TCP 的 1 个往返,香港节点实测 112 ms。比 WireGuard 慢,但比 OpenVPN TCP 模式快 45 ms。
可探测性最低
握手与普通 HTTPS 站点完全一致,证书由服务端真实签发;主动探测只会拿到一个普通页面的 404,没有可识别的协议特征。
- 吞吐 620 Mbps,介于 WireGuard 与 Hysteria2 之间,受 TLS 记录层开销影响约 6%。
- 缺点在 TCP 层:丢包会触发重传与队头阻塞,1% 丢包时吞吐掉到 402 Mbps,跌幅比 QUIC 类协议更大。
- 适合只放行 443 的办公网、校园网与酒店网络,也是快喵VPN 在端口受限环境里的首选档。
05
Hysteria2:把丢包当常态
Hysteria2 跑在 QUIC 之上,用一套按带宽设定窗口的拥塞控制算法,把丢包当作链路常态而非拥塞信号。因此在跨境链路上表现稳定。

握手 1 个往返
QUIC 把 TLS 1.3 融进传输层,首次连接 1 个往返完成,重连带票据可 0 个往返。香港节点首包 64 ms。
抗丢包来自算法
Brutal 拥塞控制按客户端上报带宽开窗口,丢包不会触发减速,代价是占用更多上行配额,因此需要服务端配合做配额控制。
可探测性中低
QUIC 明文部分暴露版本与连接 ID,识别成本低于 Trojan,高于 WireGuard;启用混淆后握手特征被抹平。
| 丢包率 | WireGuard | OpenVPN UDP | Trojan | Hysteria2 |
|---|---|---|---|---|
| 0% | 940 Mbps | 310 Mbps | 620 Mbps | 780 Mbps |
| 1% | 602 Mbps | 214 Mbps | 402 Mbps | 690 Mbps |
| 3% | 318 Mbps | 132 Mbps | 241 Mbps | 588 Mbps |
| 5% | 176 Mbps | 94 Mbps | 138 Mbps | 421 Mbps |
这张表是全站最应该被记住的一张:没有一种协议在所有丢包率下都最快。在 1% 以上丢包时,Hysteria2 的相对优势会迅速放大。快喵VPN 的丢包优先档就是在丢包超过 2% 时把 Hysteria2 提到第一顺位。
- 0% 丢包时四协议的排序是 WireGuard、Hysteria2、Trojan、OpenVPN。这个排序与握手开销并不一致,原因是吞吐取决于数据面而非握手。
- 5% 丢包时 Hysteria2 是 WireGuard 的 2.4 倍,这个比例在 3% 时是 1.8 倍。算法优势随丢包加剧而放大。
- OpenVPN 在每一档都是最后一名,原因是用户态拷贝与 TCP 层重传叠加,两种情况都在同一处浪费时间。
顺带说明测量方法:丢包用 tc netem 在客户端侧注入随机丢包,正态分布,种子固定,每种条件跑 3 轮取中位。服务端与客户端同城部署,排除本地无线干扰。
06
端口与传输层:现实比协议更重要
协议跑在什么端口、走 UDP 还是 TCP,往往比协议本身的效率更决定成败。下面四条是实测中最常见的阻断方式。
UDP 限速而非封禁
部分校园网与酒店网络对 UDP 做 QoS 限速到 20 Mbps,握手能成功但吞吐极低,表现为「连上了但很慢」。切换 Trojan 后恢复到 620 Mbps。
TCP 443 放行但深度检测
企业网关常对 443 做 TLS 指纹检查,代理流量若使用非常规参数会被重置。Trojan 使用标准 TLS 库即可通过,关键在于证书与 SNI 的一致性。
- WireGuard 默认 51820/UDP,被封锁时可换任意高位端口,但换了端口仍走 UDP,无法绕过 UDP 封禁。
- OpenVPN 的 1194/UDP 与 443/TCP 是两种完全不同的可达性,前者快、后者稳。快喵VPN 两者都在客户端内置。
- Trojan 必须占用 443 才能发挥伪装效果,这是它与普通 HTTPS 站点共存的代价。
- Hysteria2 使用 UDP 高位端口,若网络对 QUIC 有特殊处理(常见于运营商 CGNAT)。需要退回 Trojan。
- 所有端口选择都会写入客户端诊断日志,导出后可直接交给网络管理员核对。
07
组合使用:一台客户端里的四个档位
四种协议不是互斥选项,而是一条自动降级链路。客户端按网络环境逐级尝试,用户通常感觉不到切换过程。
- 第一档 WireGuard:UDP 可用、丢包低于 2%、需要大带宽时启用,占全部连接的 54%。
- 第二档 Hysteria2:检测到丢包高于 2% 或链路抖动大于 12 ms 时启用,占 21%。
- 第三档 Trojan:UDP 探测连续 3 次失败,或需要穿过只放行 443 的网络时启用,占 19%。
- 第四档 OpenVPN:前三档全部失败,或用户手动强制兼容模式时启用,占 6%。
这四级结构也解释了为什么「同一个账号,两台电脑速度不同」:两台机器所处的网络放行了不同的端口。自动选路把它们放在了不同的档位上。
08
选型建议:按网络环境对照
如果你习惯手动选协议,下面这张表按网络环境给出首推项,括号里是次选。判断依据只有两条:UDP 是否可用,丢包是否高于 2%。
| 网络环境 | 首推 | 次选 | 原因 | 预期交接 |
|---|---|---|---|---|
| 家庭千兆宽带 | WireGuard | Hysteria2 | UDP 通畅,网关无限速 | 实际带宽的 92% |
| 公司办公网 | Trojan | OpenVPN TCP | 只放行 443,且做 TLS 检查 | 实际带宽的 60% |
| 校园网 | Trojan | Hysteria2 | UDP 常被限速到 20 Mbps | 实际带宽的 55% |
| 酒店与咖啡厅 | Hysteria2 | Trojan | 链路抖动大,UDP 多数可用 | 实际带宽的 48% |
| 移动 4G/5G | Hysteria2 | WireGuard | 无线丢包高,切换频繁 | 实际带宽的 51% |
| 国际漫游 | OpenVPN | Trojan | 端口受限最严重,优先连通性 | 实际带宽的 34% |
- 「预期交接」指该环境下客户端屏显速度与线路带宽的比值,取自 200 次测速的中位,不是理论上限。
- 移动网络的数值波动最大,同一位置不同时段可以相差 15 个百分点,建议以 10 分钟均值判断。
09
四个常见误区
这些说法在工单里反复出现,每一条都有对应的实测反例。
「加密越强速度越慢」
不成立。ChaCha20-Poly1305 与 AES-256-GCM 在支持硬件加速的 CPU 上都能跑满千兆,WireGuard 的 940 Mbps 就是证据。真正拖慢速度的是用户态拷贝与握手往返数。
「协议越新越安全」
不完全。Hysteria2 的 Brutal 拥塞控制假设链路善意,恶意中间人可以借此放大流量。安全性仍要落在密钥交换与证书校验上,Trojan 的 TLS 1.3 在这点上并不弱。
「TCP 一定比 UDP 稳」
只在有丢包时成立。0% 丢包下 UDP 类协议吞吐高 40% 以上。1% 丢包时 TCP 的重传机制反而让吞吐掉得更快,因为队头阻塞会放大每一次重传。
「握手只影响首次连接」
不成立。WireGuard 每 120 秒重协商一次,重型握手协议在连接迁移(如从 Wi-Fi 切到 4G)时需要完整重来。这正是移动端体感差异的来源。
「手动选节点一定更快」
只在 10 分钟内成立。手动选出的节点缺少持续探测,一旦丢包上升不会自动降级。自动选路的价值在于 30 秒内响应劣化,这一点在长视频与会议场景里更关键。
每一条误区的反例都来自同一批探针数据,测量脚本与原始 CSV 的存放方式写在数据来源页,便于第三方复算。
10
协议要落在具体线路上才算数
同一份协议在不同线路上可以跑出完全不同的数字:跨境段走 CN2 GIA 与走普通 BGP。WireGuard 的差距能达到 210 Mbps。协议只决定封装方式,线路决定封装之后还能剩多少。

这也解释了为什么快喵VPN 不在选路里只看 RTT:延迟低的线路可能在晚高峰丢包,延迟高 8 毫秒的线路反而更稳。选路的第二判据(丢包优先)就是为这种线路准备的。
CN2 GIA 与 BGP 的差值
香港两条回程在 20:00 至 23:00 的对比:CN2 GIA 丢包 0.1%、WireGuard 实测 928 Mbps。普通 BGP 丢包 1.4%、同协议降到 640 Mbps。协议没变,线路变了。
海缆维护期的影响
跨境海缆检修期间,Hysteria2 的抗丢包优势最明显:3% 丢包下仍有 588 Mbps。WireGuard 只有 318 Mbps,此时强行留在 WireGuard 是错误选择。
- 线路标签由探测端写入,客户端只读取不修改,避免被本地配置覆盖。
- 同城多入口时优先选直连线路,跳数少 4 至 6 跳,握手时间缩短 11 至 19 ms。
- 海缆维护公告会提前写入客户端的线路黑名单,选路自动绕开,无需用户操作。
11
一张决策表收尾
把前面的所有条件压成一张表:左边是现场观察到的现象,右边是该做的动作。这张表可以直接贴在工位上。
| 观察到的现象 | 判读 | 建议动作 | 预期恢复 |
|---|---|---|---|
| 能连上,速度只有带宽的 8% | UDP 被 QoS 限速 | 切 Trojan | 恢复到带宽的 60% |
| 连不上,提示握手超时 | UDP 被完全阻断 | 切 Trojan 或 OpenVPN TCP | 30 秒内可连 |
| 晚高峰剧烈波动 | 跨境段丢包高于 3% | 切 Hysteria2 | 吞吐提升 1.8 倍 |
| CPU 单核打满 | OpenVPN 用户态瓶颈 | 切 WireGuard | 吞吐提升 3 倍 |
| 延迟低但速度上不去 | TCP 队头阻塞或本地 CPU | 先看 CPU,再切 Hysteria2 | 视瓶颈而定 |
- 先看客户端诊断页的第一行,确认当前协议与端口,这一步只需要 2 秒。
- 对照上表找到最接近的现象,按建议动作切换一次,观察 60 秒。
- 若切换无效,导出诊断日志,里面有三次探测的原始读数与本机 CPU 峰值。
- 把日志发到 protocol@kuuimiao.com.cn,工作日内会得到一次人工复核。
表里的预期恢复值是区间中位,实际结果受本地网络与设备影响,判断时以切换后 60 秒的稳定读数为准,不要用刚切换时的瞬时值。
