我对SOCKS5中的UDP请求有几个问题。我已经看过这篇论文了https://www.rfc-editor.org/rfc/rfc1928#section-7,我正在尝试用C++实现它。
问题:
- 我需要使用";UDP请求报头";在发送和接收方面
- 我可以用类似";WSASendTo";从winsock2通过SOCKS5服务器重定向数据包
我需要使用;UDP请求报头";在发送和接收方面?
是。这包含在您链接到的文档部分:
基于UDP的客户端必须在对UDP ASSOCIATE请求的答复中通过BND.port指示的UDP端口将其数据报发送到UDP中继服务器。如果所选的身份验证方法出于真实性、完整性和/或机密性的目的提供封装,则数据报必须使用适当的封装进行封装每个UDP数据报都携带一个UDP请求标头:
当UDP中继服务器决定中继UDP数据报时,它会静默地这样做,而不会向请求客户端发出任何通知。类似地,它将丢弃不能或不会中继的数据报当UDP中继服务器接收到来自远程主机的回复数据报时,它必须使用上述UDP请求标头和任何依赖于身份验证方法的封装来封装该数据报。
这意味着您发送到SOCKS中继的UDP数据报和从SOCKS中继接收的UDP数据报都携带相同的标头。
我可以使用类似";WSASendTo";从winsock2通过SOCKS5服务器重定向数据包?
您可以使用WSASendTo()
向SOCKS中继发送您自己的数据报,是的。
但是,如果重定向的意思是让其他应用程序的UDP套接字在他们不知情的情况下通过SOCKS中继发送/接收数据,那么没有。