Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Proxy 理解Socks5协议_Proxy_Socks - Fatal编程技术网

Proxy 理解Socks5协议

Proxy 理解Socks5协议,proxy,socks,Proxy,Socks,我对socks5完全是个新手,但我正在尝试通过创建socks5服务器来学习 我从阅读中获得了大量关于SocksV5的信息 它解释了为了建立到服务器的连接、请求远程连接和绑定而必须发送到客户端和服务器的数据包。它还解释了如何使用UDP,这是伟大的 我不明白的是建立连接后会发生什么 比如说, Client: <sends method identifiers> Server: <responds with the method identifier to use> ...au

我对socks5完全是个新手,但我正在尝试通过创建socks5服务器来学习

我从阅读中获得了大量关于SocksV5的信息

它解释了为了建立到服务器的连接、请求远程连接和绑定而必须发送到客户端和服务器的数据包。它还解释了如何使用UDP,这是伟大的

我不明白的是建立连接后会发生什么

比如说,

Client: <sends method identifiers>
Server: <responds with the method identifier to use>
...authentication is complete....
Client: Sends a connection request to 192.168.1.1:2321
Server: Acknowledges Packet
Server: Acknowledges successful connection to 192.168.1.1:2321
Client: ????
客户端:
服务器:
…身份验证已完成。。。。
客户端:向192.168.1.1:2321发送连接请求
服务器:确认数据包
服务器:确认成功连接到192.168.1.1:2321
客户:????
从客户端发送到服务器以实际将数据转发到目的地的数据包的格式是什么

假设客户端要求代理服务器建立3个连接。当客户端想要将数据转发到连接1时,必须有这样做的协议。否则,服务器如何知道将其发送到哪个连接?我在RFC文档中找不到任何信息

我想另一个问题是,这可能吗?客户机是否可以请求多个连接,或者必须一次请求一个连接,或者为每个要转发出去的连接建立到服务器的单独套接字连接


谢谢你的帮助

再仔细阅读RFC,它会告诉你你想要什么

对于要与之交换数据的每台服务器,客户端必须与SOCKS代理建立单独的TCP连接,无论该数据是TCP还是UDP

如果客户端正在交换TCP数据,则在代理发送成功回复后,它只需通过与代理建立的相同连接读取/发送数据

如果客户端正在交换UDP数据,则TCP连接用于建立关联的UDP中继,代理使用该中继来回转发数据。客户端告诉代理将入站UDP数据包发送到哪里,代理的成功回复告诉客户端将出站UDP数据包发送到哪里。只要客户端和代理之间的TCP连接处于活动状态,UDP重播就处于活动状态

无论哪种方式,一旦建立了必要的参数,代理都会透明地处理客户端和服务器之间的所有转发