正向代理、透明代理、反向代理

代理方式有三种:正向代理、透明代理和反向代理。

一、正向代理

正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从目标服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转发请求并且将获得的内容返回给客户端。正向代理的情况下客户端必须要进行一些特别的设置才能使用。

正向代理可以但不限于为局域网内客户端做代理,它扮演的角色类似于NAT。

代理内部主机上网,共享上网,缓存,控制内网用户上网行为等功能(客户端需要设置代理服务器的IP和代理端口)

正向代理分析图:
		外网
		 |
		modem
		 |
		路由器(dhcp,snat共享上网,上网行为控制,限速等)
		 |
		 |
	 squid正向代理(共享上网,静态页面缓存加速,内网用户四七层上网行为控制,限速等)
		 |
		 |	
	|----------------------|
 上网用户一		    上网用户二

正向代理服务的作用

1. 替代访问

2. 加速访问

3. Cache作用

Cache(缓存)技术和代理服务技术是紧密联系的(不光是正向代理,反向代理也使用了Cache(缓存)技术。

还是上面的例子,假如某宿舍的学生 A 通过这个代理服务器下载了某个动作电影,而在此之前同学 B 已经通过这个代理服务器下载过,这个时候代理服务器可以将这个电影保存在代理服务器上一段时间,A 去下载的时候直接返回给 A,而不需要再跑去目标服务器重新下载。这个过程就是 Cache 命中,如果客户端和代理之间带宽够高,也可以起到加速访问的作用,达到秒下载的效果。

4. 客户端访问授权

比如在一些机构内部不能随意访问外网,这个时候就可以用正向代理服务器,为不同的用户分配固定 IP 或者 ID 身份识别,客户端通过设置代理服务器访问网络时,代理服务器会检查网络请求的客户端来源,非允许的客户端请求数据包会被直接丢弃。

5. 隐藏访问者的行踪

显然,如果我们通过一个代理服务器去访问某个网站资源,网站服务器只能看到代理服务器在发请求,并不知道其背后真正的请求者,这就可以在一定程度上起到隐匿行踪的作用。

二、透明代理

透明代理(transparent proxy),透明代理其实也叫做内网代理(inline proxy)、拦截代理(intercepting proxy)以及强制代理(force proxy)。透明代理和正向代理的行为很相似,但细节上有所不同。透明代理将拦截客户端发送的请求,拦截后自己代为访问服务端,获取响应结果后再由透明代理交给客户端。一般公司内的上网行为管理软件就是透明代理。

​​和正向代理的功能完全一致(客户端不需要设置代理服务器的IP和代理端口,对用户是透明的)

例如,客户端要访问www.baidu.com,如果是正向代理的方式,客户端会指明它要交给正向代理服务,就像路由中说要交给网关一样。如果是透明代理的方式,则是发送出去,然后被透明代理拦截,客户端以为请求的这个过程是自己完成的,并不知道是透明代理完成的。

正向代理和透明代理的区别

细分起来还是有不少的,但主要几点:

  • 正向代理时,客户端明确指明请求要交给正向代理服务,也就是说要设置代理。而透明代理对客户端是透明的,客户端不知道更不用设置透明代理,但是客户端发出去的请求都会被透明代理拦截。
  • 正向代理为了实现某些额外的需求,有可能会修改请求报文,但按照RFC文档的要求,透明代理不会修改请求报文。
  • 正向代理可以内网也可以外网,但透明代理都是内网。

三、反向代理

反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。

客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,使得这些内容就好似他自己一样,一次客户端并不会感知到反向代理后面的服务,也因此不需要客户端做任何设置,只需要把反向代理服务器当成真正的服务器就好了。

反向代理	从外部网络访问内部服务器,与正向方向相反,主要用于网站架构的缓存加速或CDN
反向代理分析图:
			client
			  |
			  |
			反向代理 (缓存加速,七层切分,负载均衡,会话保持等)
			  |
			  |	
			  web

举个例子,用户访问 http://julizi.com/404
但julizi.com上并不存在 404 页面,于是它是偷偷从另外一台服务器上取回来,然后作为自己的内容吐给用户,但用户并不知情,这很正常。这个域名所对应的服务器就使用了反向代理的功能。

反向代理服务器的作用

  1. 保护和隐藏资源服务器
  2. 负载均衡,CDN 技术的就是利用了反向代理技术

正向代理和反向代理的区别

用途上来讲:

  • 正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。
  • 正向代理还可以使用缓冲特性减少网络使用率。
  • 反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。
  • 反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。
  • 另外,反向代理还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。

安全性来讲:

  • 正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。
  • 反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。

参考:

  1. https://www.xiaohuait.com/2019/11/29/squid%E8%AF%A6%E8%A7%A3%EF%BC%88%E6%AD%A3%E5%90%91%E4%BB%A3%E7%90%86%E3%80%81%E9%80%8F%E6%98%8E%E4%BB%A3%E7%90%86%E3%80%81%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%EF%BC%89/
  2. https://blog.csdn.net/suool/article/details/105241362
  3. https://zhuanlan.zhihu.com/p/68560128
  4. https://www.cnblogs.com/f-ck-need-u/p/9739870.html

你可能感兴趣的:(网络通信,网络安全,web,正向代理,透明代理,反向代理)