平时工作生活中基本都会接触到各种代理,nginx反向代理、v2ray正向代理,还有openwrt中FQ常说的透明代理。至于这三者有什么区别,下面逐一进行简单的介绍。
1. 正向代理(Forward Proxy)
首先,无特殊说明的情况下,正向代理 一般就是我们平时说的 代理。
正向代理服务器位于客户端与服务端之间,用于转发客户端请求,因此客户端需要做特殊配置。
正向代理的特点就是对服务端隐藏客户端,因为客户端的请求都是经过正向代理,由正向代理发往服务端,所以对服务端来说,它的客户端是正向代理服务器,它并不能感知真正的客户端(实际情况是服务端可以通过特殊手段来获取实际客户端)。
常见的使用场景主要包括:
- 访问客户端无法直接访问的服务(eg.FQ)
- 隐藏用户行为,防止服务跟踪
- 资源缓存加速
2. 反向代理
首先,反向代理也是代理,也是转发客户端请求,但是正如它的名字一样,它的特性表现跟正向代理完全相反。
反向代理是对客户端隐藏真实的服务端,客户端无需关心它的请求到了哪里,也无需特殊设置。
主要应用场景:
- 负载均衡
- 保护真实服务器
3. 透明代理
前面的正向代理,客户端需要特殊的设置才能使用,那如果在正向代理中对客户端隐藏代理的存在呢?这就是透明代理。
透明代理跟正向代理行为上差不多,但是透明代理有个特别之处就是有能力拦截TCP/IP流量,并修改HTTP报文。因为对客户端隐藏,所以客户端基本无法感知自己的流量是否被监测或修改。
最主要的应用场景是各大公司的员工上网行为管理(摸鱼党的噩梦),其次就是家庭局域网的流量分发。