今天课程涉及到了SOCKS5的实现,由于对该协议不了解,对此学习并记录。
什么是代理
代理指的是计算机和站点服务器的中间服务器,配置了代理之后每次计算机访问站点或者站点尝试对计算机发送信息时,都会先通过代理发送请求
代理的作用
- 安全,使用代理服务器对请求进行转发可以防止被追查到本地信息
- 访问区域封锁的网站(正经讨论)
- 绕过反欺诈网站系统的限制
- 解决网络延时,可以通过缓冲区提高运行速度
什么是SOCKS5
SOCKS5 是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全。
SOCKS5通过将前端的请求发给真正的服务器,模拟了一个前端的行为
前端和SOCKS5之间也是通过TCP/IP协议进行通讯
什么时候需要SOCKS5
当机器拥有一个合法的IP地址,可以自由和互联网上的任何主机沟通,那么不需要关心SOCKS5协议。该协议主要用于处在内部网络的机器,该机器需要透过网络中某些可以联通外部互联网的机器访问外部。
SOCKS5在请求转发的过程中,对请求数据包本身不加任何改变,收到服务器的响应后也原样转发给前端。它是一种兼容各种应用层协议的代理协议,忠实地转发通讯包,尽管不理解转发数据的内部结构。
和HTTP代理的区别
HTTP代理是通过HTTP协议进行的,代理服务器了解通讯包的内部结构,在转发过程中还要对通讯进行某种程度的修改与转换,主要对浏览器的流量进行重定向。
HTTP代理其实还包含了耳熟能详的一个版本—HTTPS,有了它,从计算机到站点服务器的信息能够以加密形式传输,并且只有发送信息的浏览器和接收信息的站点知道如何解密。
如果每个应用层协议都要设计对应的代理协议表达方法,工作量是非常复杂的。相比而言,除了浏览器,SOCKS5可以对所有的流量进行重定向,且不会进行任何数据更改。因此SOCKS5缓解了各种具体协议需要专门设计代理协议的局面。