新闻动态

SOCKS5的原理与应用
Socks5介绍: Socks5是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器之间扮演一个中间角色,使得内部网中的前端机器能够访问Internet网中的服务器,Socks5提供多种身份验证,只有授权用户才能访问服务器,这极大提升了通讯的安全性。 SOCKS5服务器通过将前端发来的请求转发给真正的目标服务器,模拟了一个前端的行为。在这里,前端和Socks5之间也是通过TCP/IP协议进行通讯,前端将原本要发送给真正服务器的请求发送给Socks5服务器,然后Socks5服务器将请求转发给真正的服器。 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代理服务器连接游戏服务器。这样游戏服务器就会认为该玩家的客户端位于本地区,从而允许该玩家参加游戏。
2019-08-02

关注云语科技

wechat qrcode

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