mr.*_*tic 10
SOCKS 5 支持 UDP。OpenSSH声称实现了 SOCKS4 和 SOCKS5,但它只实现了SOCKS5 协议的一个子集。
您不会找到文档中支持或不支持的内容的详细信息,请查看源代码:
if (s5_req.version != 0x05 ||
s5_req.command != SSH_SOCKS5_CONNECT ||
s5_req.reserved != 0x00) {
debug2("channel %d: only socks5 connect supported", c->self);
return -1;
}
Run Code Online (Sandbox Code Playgroud)
(从函数channel_decode_socks5()中channels.c,OpenSSH的-6.4p1从11月8日,2013年更新这仍然是案件最多的OpenSSH-7.6p1,2017年10月的OpenSSH-8.2p1,2020年二月)
SSH_SOCKS5_CONNECT是命令操作码 1,它隐含地是一个 TCP 连接。命令操作码 3UDP ASSOCIATE用于 UDP 代理(这是添加到SOCKS5 的内容,SOCKS4 或 4a 不支持 UDP)。
有支持 UDP 的商业和免费(例如Dante)SOCKS5 代理可用。
如果您不需要动态UDP 端口转发,您可以使用以下方法之一通过 SSH 连接设置一些(提前选择目的地)UDP 转发:通过 SSH 隧道的 UDP 流量
(我推荐这种socat方法,我发现它努力工作。)