作者:IPIDEA
2021-02-20 17:42:47
Socks5是一个代理协议,位于传输层(TCP/UDP等)与应用层之间。Socks软件包组成为如下结构:
Socks库:安装于客户端。为Socket库的替代品,所有使用Socks的程序都必须将Socket库函数调用更改为Socks库函数调用。需要注意的是,Socks库函数仍然需要调用Socket库函数,Socks只对其进行安全验证。
Sockd守护程序:安装于服务器,接收并处理来自客户端的CONNECT,BIND及请UDP associate求。以CONNECT请求为例,其工作流程是:
1.客户端向代理服务器发出请求信息,以协商版本和身份验证方法。
2.代理服务器做出响应,将选定的方法发送给客户端。
3.客户和代理服务器进入 由所选身份验证方法确定的子协商过程。
4.子协商过程结束后,客户端发送请求信息,其中知道目标服务器的IP地址和端口。
5.代理服务器验证客户端的身份,并在通过验证后会与目标服务器连接。
6.代理服务器向客户端返回连接信息。
7.如果连接完成,代理服务器作为传输站开始传输数据。
Socks5协议同时支持TCP和UDP代理,主要和会话层一起工作,所以与上层的协议无关,但是,它无法做到全局代理。