跳转至

UDP over TCP

这是 SagerNet 创建的专有协议,不是 shadowsocks 的一部分。

UDP over TCP 协议用于在 TCP 中传输 UDP 数据包。

结构

{
  "enabled": true,
  "version": 2
}

当不指定版本时,结构可以用布尔值替换。

字段

enabled

启用 UDP over TCP 协议。

version

协议版本,12

默认使用 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 中的流格式相同。