2018/07/09
4,134
SOCKS
是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间代理传递 。SOCKS是 "SOCKetS" 的缩写。目前其最新的版本是5,相比于前一个版本,其新增了 IPv6
, UDP
及 验证
。
根据OSI模型,SOCKS是会话层的协议,位于表示层与传输层之间。
协议详情
一个 socks5 连接的过程主要有两部分,协商与请求,如果协商后需要验证,则还包含验证的部分。
(1) 认证方法协商
客户端向服务端发出连接认证方法协商请求
VER
是 SOCKS 的版本,此处是0x05
NMETHODS
是 METHODS 部分数据的长度,即客户端支持的认证方式的 countMETHODS
是客户端支持的认证方式列表,每个方法占一个字节0x00
不需要认证0x01
GSSAPI0x02
用户名密码认证0x03 - 0x7F
由 IANA分配(保留)0x80 - 0xFE
私人方法(保留)0xFF
无可接受的方法
服务器回应协商,从客户端提供的方法中选择一个并通知客户端:
VER
是SOCKS的版本号,此处应为0x05
METHOD
是服务端选中的方法。如果不支持客户端提供的所有方法,则返回0xFF