socks介绍
链接
简介
- SOCKS是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。SOCKS是”SOCKet Secure”的缩写[注 1]。
当防火墙后的客户端要访问外部的服务器时,就跟SOCKS代理服务器连接。这个代理服务器控制客户端访问外网的资格,允许的话,就将客户端的请求发往外部的服务器。
这个协议最初由David Koblas开发,而后由NEC的Ying-Da Lee将其扩展到SOCKS4。最新协议是SOCKS5,与前一版本相比,增加支持UDP、验证,以及IPv6。
根据OSI模型,SOCKS是会话层的协议,位于表示层与传输层之间。
SOCKS协议不提供加密。
位于7层模型的位置:
-
SOCKS实际分为了客户端和服务端来共同协作完成代理目标。在客户端进行socket网络编程时,SOCKS提供了一套和传统socket接口(socket,listen,bind等)一致的接口SDK供应用层调用,这类软件最著名的莫过于SocksCap32了,它是Permeo公司早期推出的一款产品,后来又提供了Permeo Security Driver(称为PSD)SDK。在服务端通常是提供一个服务器提供SOCKS代理服务,一般监听1080端口。用户将客户端的请求和流量代理到目的服务器,常见的SOCKS服务像shadowsock等。
-
版本:
SOCKS 4 仅支持TCP协议 SOCKS4a SOCKS4a是SOCKS 4协议的简单扩展,允许客户端对无法解析的目的主机,进行自行规定。 SOCKS5 相比于前一版本,增加支持UDP、验证,以及IPV6支持。(现在的主流版本)
流程
- 示意图:
- 代理流程图:
- 协商过程: