原生 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 中转不好用
- 技术上,原生 UDP 中转会导致 MTU 变小,且中转程序无法控制 UDP 速率,只能照样转发。
- 技术上,某些 Shadowsocks 后端的 UDP 实现不好,造成延迟提升。
- 由于 DDoS 等原因,运营商经常严格限制 UDP。无论是用户到中转入口,还是入口到出口,都可能存在 UDP 被限制的情况。
我就想用机场打游戏
UOT 方案
- 使用 VMess / Trojan 协议。
- 确保落地机的 UDP 网络稳定。
- 如果机场后端支持,建议为客户端 (
sing-box
/clash meta
) 开启UOT
或Mulitplex
。
原生方案
- 确保入口、出口和落地的 UDP 网络稳定。
- 使用 SS 协议,确保后端程序稳定。