Pwner's Blog

能全力以赴不尽力而为

0%

三种常用的代理方式详解

一听反向代理(Reverse Proxy)这个词是否感觉很玄乎?反过来,正向代理(Forward Proxy)似乎更玄乎?通常为了方便,直接将正向代理简称为代理,所以使得正向代理听起来反而更加陌生。

其实二者有很多的相似之处,最大的区别无非就是代理的对象不同。何为代理的对象不同?即为谁代理。

正向代理和反向代理 正向代理和反向代理

正向代理

之前有看到过一个图,很形象。遗憾的是现在我暂时没找到这个图。图片内容大概就是一对夫妻正在喝西瓜汁。其中,女子正在喝西瓜汁,但是男子由于无法直接喝到西瓜汁,于是将吸管接到女子的嘴里:先由女子将西瓜汁吸到嘴里,然后男子从女子嘴里喝女子从西瓜中吸取的西瓜汁。这便是代理的最朴素的应用。其中,女子(的嘴)就充当了代理的角色。

正向代理服务器代替客户端去访问目标资源

正向代理目前最普遍的用途:

  • 访问无法直接访问的资源(“科学上网法”)
  • 加速访问(减少路由中转,或者通过高带宽链路替代低带宽链路来提高访问速度)
  • Cache 作用(正向,反向代理都有用到)
  • 客户端访问授权(例如:跳板机)
  • 隐藏实际访问者的身份(例如:“肉鸡”)

总结

正向代理服务器是一个位于客户端原始服务器之间的服务器,为了从原始服务器取得内容,客户端代理服务器发送一个请求并指定目标(原始服务器),然后代理服务器原始服务器转交请求并将获得的内容返回给客户端,通常是在客户端上对代理服务器进行配置。

反向代理

与正向代理相反。客户端通常对代理服务器没有感知。

反向代理目前最普遍的用途:

  • 保证内网的安全(例如:可以使用反向代理提供 WAF 功能,阻止 web 攻击)
  • 负载均衡

总结

反向代理实际运行方式是指以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

透明代理

通过篡改报文(Request fields),并传送真实 IP。通常客户端和服务端都没有感知。

最常见的应用:

  • 许多公司为了监管用户而使用的行为管理软件。

CDN 技术

使用了智能 DNS 技术和反向代理技术,此处因为讨论到反向代理,顺便一提,不作详细说明。

如果文章对你有用,可以请我喝杯咖啡~
  • 本文作者: Pwner
  • 本文链接: https://pwner.cn/posts/a8425aec.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!