正向代理、反向代理、透明代理三者的简单介绍

平时工作生活中基本都会接触到各种代理,nginx反向代理、v2ray正向代理,还有openwrt中FQ常说的透明代理。至于这三者有什么区别,下面逐一进行简单的介绍。

1. 正向代理(Forward Proxy)

首先,无特殊说明的情况下,正向代理 一般就是我们平时说的 代理。

正向代理服务器位于客户端与服务端之间,用于转发客户端请求,因此客户端需要做特殊配置。

正向代理的特点就是对服务端隐藏客户端,因为客户端的请求都是经过正向代理,由正向代理发往服务端,所以对服务端来说,它的客户端是正向代理服务器,它并不能感知真正的客户端(实际情况是服务端可以通过特殊手段来获取实际客户端)。

常见的使用场景主要包括:

  • 访问客户端无法直接访问的服务(eg.FQ)
  • 隐藏用户行为,防止服务跟踪
  • 资源缓存加速

2. 反向代理

首先,反向代理也是代理,也是转发客户端请求,但是正如它的名字一样,它的特性表现跟正向代理完全相反。

反向代理是对客户端隐藏真实的服务端,客户端无需关心它的请求到了哪里,也无需特殊设置。

主要应用场景:

  • 负载均衡
  • 保护真实服务器

3. 透明代理

前面的正向代理,客户端需要特殊的设置才能使用,那如果在正向代理中对客户端隐藏代理的存在呢?这就是透明代理。

透明代理跟正向代理行为上差不多,但是透明代理有个特别之处就是有能力拦截TCP/IP流量,并修改HTTP报文。因为对客户端隐藏,所以客户端基本无法感知自己的流量是否被监测或修改。

最主要的应用场景是各大公司的员工上网行为管理(摸鱼党的噩梦),其次就是家庭局域网的流量分发。