SOCKS5 协议解析
一、定义
SOCKS5 是一个代理协议,旨在为位于 Intranet 防火墙后的用户提供访问 Internet 的代理服务。
有些博文说Socks协议位于7层协议的传输层,有些博文说位于会话层,我个人的理解是位于会话层
二、协议流程
- 客户端发送认证协商
- 代理服务器就认证协商进行回复(如拒绝则本次会话结束)
- 如需GSSAPI或用户名/密码认证,客户端发送认证信息
- 代理服务器就对应项进行鉴权,并进行回复或拒绝
- 客户端发送希望连接的目标信息
- 代理服务器就连接信息进行确认或拒绝
- 【非协议内容】:代理服务器连接目标并 pipe 到客户端
2.1认证
2.1.1请求认证消息格式
版本号(1字节) | 认证方法数量(1字节) | 方法标识(1-255字节) |
---|---|---|
0x05 | 0x01 | 0x00 |
版本号固定为0x05,标识采用的是socks5协议
认证标识:
- 0x00: NO AUTHENTICATION REQUIRED
- 0x01: GSSAPI
- 0x02: USERNAME/PASSWORD
- 0x03: to