目录
0x01 前言
之前对这三种代理模式模糊不清,今天整好有时间,整理一下我对这三种代理模式的理解。
0x02 正向代理
当用户A想科学上网访问服务器B的时候,因为种种原因,没有办法直接去访问服务器B。这时候,我们的代理服务器Z就起到了绝对的作用。
首先用户A需要在自己的电脑上装上代理服务器Z的客户端(比如:v2ray、Clash等),当用户A想访问服务器B(https://github.com/)的时候,用户A首先会把该请求发给代理服务器Z,代理服务器Z收到该请求后,再将该请求(https://github.com/)发送到指定的服务器B。
服务器B收到该请求之后,将(https://github.com/)该数据返回给代理服务器Z,然后代理服务器Z再将(https://github.com/)此数据返回给用户A,这时候用户A就可以成功的接收到服务器B(https://github.com/)的信息。
此过程就是正向代理完整的步骤。
2.1 正向代理Cache(缓存)技术
还是以上图为例,当用户A想去访问服务器B的时候,还是同样先把请求的数据发送给代理服务器Z,但是代理服务器Z发现,在它的缓存中,存储着该数据的返回包。这时候代理服务器Z就没有去找服务器B,直接将它自己的缓存返回给了用户A,用户A也成功的获取到了服务器B的信息。该技术就是Cache(缓存)技术,大大的提高了数据返回的速度。
但是这里我有一个问题,如果攻击者控制了代理服务器Z,将代理服务器Z的缓存信息进行更改,那么会是什么后果???
0x03 反向代理
反向代理和正向代理最大的区别就是:使用正向代理的时候,用户需要去配置客户端。而使用反向代理的时候,用户无需去配置客户端,直接进行访问即可。
某些单位网络业务量大的时候,通常会使用反向代理操作。通过上图可知,当用户想去web服务的时候,用户一直以为web服务器会直接返回给他数据,但其实中间还有反向代理服务器,用户收到的数据是web服务器通过反向代理,把数据给到了反向代理服务器,再由反向代理服务器将数据返回给用户。
一般的流程为:用户去访问web服务器,首先用户请求web服务器的数据会让反向代理服务器拦截到,反向代理服务器会将数据给到web服务器,web服务器通过反向代理操作,将返回包的内容给到反向代理服务器,再由反向代理服务器发送给用户。
3.1 反向代理Cache(缓存)技术
反向代理Cache(缓存)技术和正向代理Cache(缓存)技术原理是一样的。
还是以上图为例,当用户想去访问web服务的时候,数据首先会经过反向代理服务器,反向代理服务器发现用户发出的请求,我的(反向代理服务器)缓存内有该请求的返回包,反向代理服务器没有去找web服务器,直接将缓存中的数据返回给了用户,大大的提高了响应的速度。
-
0x04 透明代理
透明代理类似正向代理,但是透明代理对用户而言,无需安装客户端。
以上图为例,当用户A和用户B想去访问服务器A的时候,用户并不知道使用了透明代理技术,但是在出口位置,有一个上网行为管理设备,并且使用了透明代理技术。上网行为管理收到了用户A和用户B提交的请求后,将请求包中的报文按照上网行为管理的策略进行了修改,然后行为管理设备再将请求发送给服务器A。
服务器A返回的数据包先经过行为管理设备,行为管理设备按照策略对返回的数据进行处理,然后再发送给用户A和用户B。如果行为管理设备不想让用户B去访问服务器A,那么可以设置相关的策略,用户B再请求服务器A的时候,就不能接收到相应的数据包。
此过程就是透明代理的完整过程。