UDP over TCP
这是 SagerNet 创建的专有协议,不是 shadowsocks 的一部分。
UDP over TCP 协议用于在 TCP 中传输 UDP 数据包。
结构
当不指定版本时,结构可以用布尔值替换。
字段
enabled
启用 UDP over TCP 协议。
version
协议版本,1
或 2
。
默认使用 2。
应用程序支持
项目 | UoT v1 | UoT v2 |
---|---|---|
sing-box | v0 (2022/08/11) | v1.2-beta9 |
Clash.Meta | v1.12.0 (2022/07/02) | v1.14.3 (2023/03/31) |
Shadowrocket | v2.2.12 (2022/08/13) | / |
协议详情
协议版本 1
客户端向上层代理协议请求魔法地址以表示请求:sp.udp-over-tcp.arpa
流格式
ATYP | 地址 | 端口 | 长度 | 数据 |
---|---|---|---|---|
u8 | 可变长 | u16be | u16be | 可变长 |
ATYP / 地址 / 端口:使用 SOCKS 地址格式,但使用不同的地址类型:
ATYP | 地址类型 |
---|---|
0x00 |
IPv4 地址 |
0x01 |
IPv6 地址 |
0x02 |
域名 |
协议版本 2
协议版本 2 使用新的魔法地址:sp.v2.udp-over-tcp.arpa
请求格式
isConnect | ATYP | 地址 | 端口 |
---|---|---|---|
u8 | u8 | 可变长 | u16be |
isConnect:设置为 1 表示流使用连接格式,0 表示禁用。
ATYP / 地址 / 端口:请求目标,使用 SOCKS 地址格式。
连接流格式
长度 | 数据 |
---|---|
u16be | 可变长 |
非连接流格式
与协议版本 1 中的流格式相同。