本文所列的表格通常长这样的:
┌────────┬────────┬────────┐
│ field1 │ field2 │ field3 │
├────────┼────────┼────────┤
│ 1 │ 2 │ 3 │
└────────┴────────┴────────┘
其中field就是协议头的域,其下面的数字表示该域所占字节数量,而不是其表示内容。
协议内容
client to server
┌─────┬──────────┬─────────┐ │ VER │ NMETHODS │ METHODS │ ├─────┼──────────┼─────────┤ │ 1 │ 1 │ 1~255 │ └─────┴──────────┴─────────┘用途:确立连接认证方法协商,client告知server其所支持的认证方法,server可从中挑选一个。其中
versocks协议的版本号,常用的是socks5版本的,故可以为0x05。
nmethods后面的域methods有n个字节
methods每个字节即为一个认证方法,供server挑选server to client
┌──────┬──────────┐ │ VER │ METHOD │ ├──────┼──────────┤ │ 1 │ 1 │ └──────┴──────────┘用途:告知client需要使用哪种认证方法进行认证。
ver版本,即0x05
method可以下面其中一项:
o0x00NO AUTHENTICATION REQUIRED 无需认证
o0x01GSSAPI
o0x02USERNAME/PASSWORD 用户名/密码
o0x03to0x7FIANA ASSIGNED 由IANA指定
o0x80to0xFERESERVED FOR PRIVATE METHODS 私人保留方法
o0xFFNO ACCEPTABLE METHODS 不接受