新闻动态

SOCKS5的原理与应用

2020-07-20SOCKS5

Socks5介绍:

Socks5是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器之间扮演一个中间角色,使得内部网中的前端机器能够访问Internet网中的服务器,Socks5提供多种身份验证,只有授权用户才能访问服务器,这极大提升了通讯的安全性。

SOCKS5服务器通过将前端发来的请求转发给真正的目标服务器,模拟了一个前端的行为。在这里,前端和Socks5之间也是通过TCP/IP协议进行通讯,前端将原本要发送给真正服务器的请求发送给Socks5服务器,然后Socks5服务器将请求转发给真正的服器。

2-1

Socks5代理的工作原理:

1、向代理方服务器发出请求信息

2、代理方应答

3、需要代理方接到应答后,才向代理方发送目的ip和端口

4、代理方与目的连接

5、代理方将需要将被代理方发出的信息传到目的方,将目的方发出的信息传到被代理方。代理完成。

Socks5验证连接:

1.支持的身份验证方法编号

0x00:无身份验证

0x01:GSSAPI

0x02:用户名/密码

0x03-0x7F:IANA分配的方法

0x80-0xFE:保留供私人使用的方法

来自客户端的消息:

字段1:SOCKS版本,1个字节(此版本为0x05)

字段2:支持的认证方法的数量,1个字节

字段3:认证方法,可变长度,每种方法支持1个字节

服务器的回应选择:

字段1:SOCKS版本,1个字节(此版本为0x05)

字段2:如果没有提供可接受的方法,则选择认证方法,1字节或0xFF

后续身份验证取决于方法。

2.对于用户名/密码验证

客户端的验证请求:

字段1:版本号,1个字节(当前版本的用户名/密码认证为0x01)

字段2:用户名长度,1个字节

字段3:用户名,1-255字节

字段4:密码长度,1个字节

字段5:密码,1-255字节

服务器响应:

字段1:版本,1个字节(当前版本的用户名/密码认证为0x01)

字段2:状态码,1个字节

0x00:成功

任何其他值都是失败的,必须关闭连接

3.连接

客户端的连接请求:

字段1:SOCKS版本号,1个字节(此版本为0x05)

字段2:命令代码,1个字节:

0x01:建立TCP / IP流连接

0x02:建立TCP / IP端口绑定

0x03:关联UDP端口

字段3:保留,必须是0x00,1个字节

字段4:地址类型,1字节:

0x01:IPv4地址

0x03:域名

0x04:IPv6地址

字段5:目的地址

IPv4地址为4个字节

名称长度为1个字节,后跟域名为1-255个字节

IPv6地址为16个字节

字段6:网络字节顺序的端口号,2个字节

服务器响应:

字段1:SOCKS协议版本,1个字节(此版本为0x05)

字段2:状态,1个字节:

0x00:请求已授予

0x01:一般失败

0x02:规则集不允许连接

0x03:网络无法访问

0x04:主机无法访问

0x05:目标主机拒绝连接

0x06:TTL已过期

0x07:命令不支持/协议错误

0x08:不支持地址类型

字段3:保留,必须是0x00,1个字节

字段4:地址类型,1字节:

0x01:IPv4地址

0x03:域名

0x04:IPv6地址

字段5:服务器绑定的地址

IPv4地址为4个字节

名称长度为1个字节,后跟域名为1-255个字节

IPv6地址为16个字节

字段6:网络字节顺序中的服务器绑定端口号,2个字节

Sock5应用场景案例:

国外的某网游服务器仅允许本国的iP进行连接,非本地玩家为了突破这种限制,可以找一个该地区的socks5代理服务器,然后用PSD接管网游客户端,通过socks5代理服务器连接游戏服务器。这样游戏服务器就会认为该玩家的客户端位于本地区,从而允许该玩家参加游戏。 2-12-2png

上一篇:小编分享大文件传输众多软件和平台的使用

下一篇:小文件传输的几种方式,海量小文件传输软件有哪些?

关注云语科技

wechat qrcode

微信扫一扫,获取最新资讯