【网络】正向代理和反向代理

【网络】正向代理和反向代理,第1张

【网络】正向代理和反向代理

关于网络的基本知识:
为什么百度查到的ip和ipconfig查到的不一样;详解公网Ip和私网ip;详解网络分类ABC;
内网访问外网和外网访问内网的原理

代理

什么是代理?代理其实就相当于交易双方的中间商,当客户端想要与服务端进行“交易”时,代理就需要充当中间商的身份来完成这一次交易。

正向代理和反向代理

正向代理是代理客户端,为客户端收发请求,使真实客户端对服务器不可见;
而反向代理是代理服务器端,为服务器收发请求,使真实服务器对客户端不可见。

从用途上来区分:

正向代理:正向代理用途是为了在防火墙内的局域网提供访问internet的途径。另外还可以使用缓冲特性减少网络通信(同时也可以加快响应速度)反向代理:反向代理的用途是将防火墙后面的服务器提供给internet用户访问。同时还可以完成诸如负载均衡等功能

从安全性来讲:

正向代理:正向代理允许客户端通过它访问任意网站并且隐蔽客户端自身,因此你必须采取安全措施来确保仅为经过授权的客户端提供服务反向代理:对外是透明的,访问者并不知道自己访问的是代理。对访问者而言,他以为访问的就是原始服务器(可以隐藏服务的真实地址) 正向代理

当代理为客户端服务时,该代理就是正向代理。

比如:家里上网和VPN都是比较经典的例子
电脑联网会被分配私网IP,私网IP是内网分配的,我们通过电脑和手机去访问各种网络资源,实际上还是通过公网IP(电信运营商给我们分配的)去访问。

私网IP

使用如下命令查看电脑的私网IP

ipconfig

我们的电脑每次都会被分配一个私网IP,这个IP是动态分配的,用于内网通信所使用。

我断开无线网连接之后,重连,然后再次查看,私网IP已经重新分配,不过这都不妨碍我的电脑上网(反正最后都是代理给公网IP去帮我们访问网络资源,再返回资源给我们)

重新查看

ipconfig 

公网IP

随便找个IP查询工具,或者百度就可以查到公网IP的地址

只有公网IP地址(网络运营商,移动,电信等给我们分配的地址)才能在整个互联网环境中进行网络通信,而私网IP地址只能在自己的局域网中进行网络通信。

正向代理结构图如下:
(图片来自于https://www.cnblogs.com/taostaryu/p/10547132.html)


当客户端想要请求服务端时,客户端会将请求代理给正向代理服务器,正向代理服务器接收到请求后,会主动去请求服务端,服务端接收请求后,会将响应数据返回给正向代理服务器,最后由正向代理服务器将服务端响应的数据转发给客户端。这样就实现了客户端与服务端的请求与响应。

正向代理的用途:

访问原来无法访问的资源,外国网站(这时候,多了一个正向代理VPN)可以做缓存,加速访问资源,正向代理服务器可以缓存一些比较热的资源,当客户端请求这些热资源时,正向代理服务器就不需要再次请求服务端去获取资源了,只要取本地的缓存资源即可(可能存在缓存与服务端资源不一致的问题)对客户端访问授权,上网进行认证(校园网学生认证)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息限制访问资源(学校转钟之后会限制游戏视频等网站的访问,国内限制对国外某些网站的访问,所以需要再加一个正向代理VPN) 反向代理

当代理为服务端服务时,该代理就是反向代理。

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

反向代理例子:

很多应用都需要一个反向代理服务器,比如高并发的场景下的应用。双十一剁手,短时间内请求太多,单机肯定应付不了,后面都是多台部署了相同业务的服务器集群来同时处理,就需要一个反向代理服务器来帮助他们做负载均衡,把工作平均分配给他们。

spring cloud 中的Zuul 就可以用来做反向代理服务。

反向代理的结构如下图。
(图片来自于https://www.cnblogs.com/taostaryu/p/10547132.html)

当客户端想要请求服务端时,客户端实际上请求的是反向代理服务器(服务端集群只需要暴露反向代理服务器即可),反向代理服务器接收到客户端的请求后,通过一定的策略,选择合适的服务端进行请求,服务端接收请求后,会将响应数据返回给反向代理服务器,最后由反向代理服务器将服务端响应的数据转发给客户端。这样就实现了客户端与服务端的请求与响应,而真正的服务端可以不暴露在外网环境下,保证了服务端的安全。

反向代理的作用:

保证各种服务在内网的安全,防止web攻击,通常将反向代理服务器作为公网访问地址,避免暴露服务的具体地址。比如您的内容服务器具有必须保持安全的敏感信息,如xyk号数据库,可在防火墙外部设置一个代理服务器作为内容服务器的替身。当外部客户机尝试访问内容服务器时,会将其送到代理服务器。实际内容位于内容服务器上,在防火墙内部受到安全保护。代理服务器位于防火墙外部,在外部客户机看来就像是内容服务器。外部无法访问真正的内容服务器,因为防火墙只允许代理服务器有权进行访问。负载均衡,反向代理服务器选择合适的服务进行请求(一系列负载均衡算法来保证各个服务器都不会太忙,均衡分配任务),实现流量的负载均衡。限流,当流量实在过大时,机器无法负载的情况下,反向代理服务器可以限制一部分流量请求服务(让请求失败,降级等等)。数据预处理,处理请求的数据,让服务端能够识别,以及在服务端的响应数据中添加或者删除一些数据等。节约有限的IP资源。校园网内部服务器除使用教育网地址外,也会采用公网的IP地址对外提供服务,公网分配的IP地址数目是有限的,如果每个服务器有分配-个公网地址,那是不可能的,通过反向代理技术很好的解决了IP地址不足的问题

正向代理和反向代理都是代理,关键就在于代理是站那头的,给谁办事。

正向代理: 买票的黄牛 (在客户端这头,为客户服务)
反向代理: 租房的代理 (在提供租房服务的房东那头,帮房东服务)

注意:DNS域名解析服务器应该不算代理服务器,他一般是客户端访问域名,然后dns查询出对应的IP地址,然后返回给客户端,但是不会帮客户端去请求对应的服务端,因为如果都要DNS服务器去代理请求的话,那DNS可太累了,应该访问不过来。
下图为一个DNS的流程图(图来自一张图解决网关,DNS,代理服务器之间的关系)

References:

https://www.cnblogs.com/taostaryu/p/10547132.htmlhttps://blog.csdn.net/qq_37960603/article/details/112299316?spm=1001.2014.3001.5501https://blog.csdn.net/hejun1218/article/details/72622083?locationNum=7&fps=1https://www.cnblogs.com/alex-xyl/p/11241135.htmlhttps://blog.csdn.net/hejun1218/article/details/72622083?locationNum=7&fps=1https://blog.csdn.net/weixin_44282540/article/details/117038047?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_v31_ecpm-2-117038047.pc_agg_new_rank&utm_term=dns%E4%BB%A3%E7%90%86%E5%92%8C%E4%B8%8D%E4%BB%A3%E7%90%86&spm=1000.2123.3001.4430

(写博客主要是对自己学习的归纳整理,资料大部分来源于书籍、网络资料和自己的实践,整理不易,但是难免有不足之处,如有错误,请大家评论区批评指正。同时感谢广大博主和广大作者辛苦整理出来的资源和分享的知识。)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5704527.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存