如何通过SOCKS代理发送UDP数据包

3
我正在查看当Socks服务器定义时,由我的计算机生成的流量。我在互联网上阅读并了解到,也可以通过代理服务器路由UDP。 当我尝试使用不同的允许Socks设置的UDP应用程序时,它只用于TCP流量。为什么? 我已经定义了SOCKS5,因为我理解v4不支持UDP(为什么?) 我尝试了一个例子,Vuze客户端-其专家模式允许优先使用UDP流量,设置Socks服务器,即使在此时,任何UDP也直接传输给对等方。 我的愿望是监控流量并查看它是如何传输的,是通过Socks服务器的UDP连接还是实际连接到TCP的Socks服务器并发送数据,然后通过UDP发送到目标地?


你是通过本地的SOCKS5代理还是远程代理连接的?如果无法连接到SOCKS代理,流量将直接发送。 - Fls'Zen
我正在连接到在sockslist.net上找到的可用的socks5,它对于TCP连接运行得非常顺畅,但我想知道是否也可以通过它路由UDP流量。这可行吗? - buddy123
1
你在进行网络嗅探吗?你应该看到你的客户端软件正在通过TCP连接与SOCKS5代理执行UDP关联。有关详细信息,请参阅规范:http://tools.ietf.org/html/rfc1928 - Fls'Zen
UDP ASSOCIATE是在第一轮协商结束后(服务器发送回0x05 <method-chosen>时)才发生吗? - buddy123
RFC似乎表明这是情况。 - Fls'Zen
2个回答

9
当客户端想要通过SOCKS5代理中继UDP流量时,客户端通过TCP发起UDP关联请求。然后,SOCKS5服务器向客户端返回一个可用的UDP端口,供其发送UDP数据包。
客户端随即开始将需要中继的UDP数据包发送到SOCKS5服务器上新的UDP端口。SOCKS5服务器会将这些UDP数据包重定向到远程服务器,并将来自远程服务器的UDP数据包重定向回客户端。
当客户端想要终止连接时,它会通过TCP发送一个FIN数据包。然后,SOCKS5服务器会终止为客户端创建的UDP连接,随后再终止TCP连接。

0

双重SSH隧道管理器支持带有UDP的SOCKS5 3proxy服务器支持UDP


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接