Skip to content

原生 UDP 问题

前置知识:请自行搜索 TCP 与 UDP 的区别。

UDP 代理的两种方式

原生 UDP

主流中转代理协议中, Shadowsocks 采用原生 UDP。

因此只有 Shadowsocks 协议才会让 Nyanpass 等中转程序处理 UDP。

图

UDP Over TCP

将 UDP 数据放入 TCP 隧道中传输。

主流中转代理协议中, VMess / Trojan 采用 UDP Over TCP,即从用户到落地都是采用 TCP 传输。

图

Nyanpass 如何处理 UDP

默认全程原生 UDP。

开启 UDP Over TCP 后,则在入口处接受 UDP 数据,从入口到出口这一段采用 TCP 传输。(如下图)

图

为什么 Shadowsocks UDP 中转不好用

  1. 技术上,原生 UDP 中转会导致 MTU 变小,且中转程序无法控制 UDP 速率,只能照样转发。
  2. 技术上,某些 Shadowsocks 后端的 UDP 实现不好,造成延迟提升。
  3. 由于 DDoS 等原因,运营商经常严格限制 UDP。无论是用户到中转入口,还是入口到出口,都可能存在 UDP 被限制的情况。

图

我就想用机场打游戏

UOT 方案

  1. 使用 VMess / Trojan 协议。
  2. 确保落地机的 UDP 网络稳定。
  3. 如果机场后端支持,建议为客户端 (sing-box / clash meta) 开启 UOTMulitplex

原生方案

  1. 确保入口、出口和落地的 UDP 网络稳定。
  2. 使用 SS 协议,确保后端程序稳定。