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

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

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

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

References:

  • https://www.cnblogs.com/taostaryu/p/10547132.html
  • https://blog.csdn.net/qq_37960603/article/details/112299316?spm=1001.2014.3001.5501
  • https://blog.csdn.net/hejun1218/article/details/72622083?locationNum=7&fps=1
  • https://www.cnblogs.com/alex-xyl/p/11241135.html
  • https://blog.csdn.net/hejun1218/article/details/72622083?locationNum=7&fps=1
  • https://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

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

【网络】正向代理和反向代理相关推荐

  1. 轻松理解正向代理与反向代理

    点击蓝色"程序猿DD"关注我哟 我知道有很多专注于业务研发的童鞋,经常搞不清"正向代理"与"反向代理"这两个东西.很多时候,因为这些东西的应 ...

  2. 看完你就晓得正向代理和反向代理了!

    正向代理 正向代理:代理服务器替客户端转发请求到 web 服务器(当客户端不能上网时,可以通过正向代理服务器转发请求访问 web 服务器),客户端与代理服务器属于同一 LAN 中. [友情提示] LA ...

  3. [转]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件

    文章目录 前言 一.nginx简介 1. 什么是 nginx 和可以做什么事情 2.Nginx 作为 web 服务器 3. 正向代理 4. 反向代理 5. 负载均衡 6.动静分离 二.Nginx 的安 ...

  4. 彻底理解正向代理和反向代理

    转载自 彻底理解正向代理和反向代理 平时工作中我们会接触到各种代理,它到底是什么概念呢,又是什么工作原理,下面我们具体来分析一下. 1.概念 正向代理 这个很好理解,比如说你现在要访问一个外国的社交网 ...

  5. 彻底理解正向代理、反向代理、透明代理

    套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术.一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术.常用的代理技术 ...

  6. 面试精讲之面试考点及大厂真题 - 分布式专栏 07 说一说什么是正向代理,反向代理

    07 说一说什么是正向代理,反向代理 世界上最快乐的事,莫过于为理想而奋斗. --苏格拉底 引言 05小节面完了RPC相关的一系列问题,面试官确定我对分布式架构的理论知识和服务间通讯框架(RPC) 确 ...

  7. nginx正向代理,反向代理概念

    正向代理 正向代理,也就是传说中的代理,他的工作原理就像一个跳板, 简单的说, 我是一个用户,我访问不了某网站,但是我能访问一个代理服务器 这个代理服务器呢,他能访问那个我不能访问的网站 于是我先连上 ...

  8. 反向代理是什么意思?正向代理和反向代理的区别是什么?

    一文说清楚正向代理与反向代理的区别 什么是正向代理?什么是反向代理?它们的区别是什么?看完本文就清楚了- 首先,从字面上理解,代理的意思是代替办理,就是一方委托另一方办事,在计算机网络的世界里,代理通 ...

  9. 什么是正向代理和反向代理

    什么是正向代理和反向代理 1. 正向代理 2. 反向代理 3. 两者的区别 1. 正向代理 正向代理隐藏真实客户端 正向代理,就是一个位于客户端和原始服务器之前的服务器,为了从原始服务器取得内容,客户 ...

最新文章

  1. 以太坊智能合约简介(Solidity)
  2. BZOJ 4849 [NEERC2016]Mole Tunnels (模拟费用流)
  3. 笑脸符号怎么存入mysql_让MySql支持Emoji表情存储
  4. Clash Royale开发日志
  5. gx works2 存储器空间或桌面堆栈不足_静态体验奇瑞艾瑞泽GX冠军版,细节做工很精湛...
  6. Docker 架构原理及简单使用
  7. Python在数字前方补0
  8. 论文Express | 英伟达最新:多模态无监督图像迁移网络框架
  9. iOS 15 通知的新功能
  10. pb 系统托盘实例(定时任务管理)
  11. .net core系列源码地址介绍
  12. 中信证券:降准并非货币宽松 缺口或达9000亿
  13. 谈谈新加坡的电子政务
  14. 一行搞定List<T>中的成员数量统计
  15. C++计算三角形周长和面积
  16. win10更改hosts文件
  17. 2021 年 9 项优秀在线电话会议服务比较(带免费选项)
  18. ESP32学习入门:WiFi连接网络
  19. 图的并查集QuickFind类总结——C++
  20. 本地获取谷歌 获取经纬度 海拔

热门文章

  1. 批量关闭公众号推送_微信发大招,长期不读的公众号可“批量关闭”!
  2. js 空数组直接赋值与push
  3. 2019最应该投资什么?是你明年的北大核心
  4. shell圣诞树脚本
  5. 九招使用 Telegram必学,使用Telegram 必看实用功能
  6. 微信公众号支付从前端到后台(小白教程)
  7. mysql外键设置不成功_MySQL数据库建立外键失败的原因总结
  8. Math.hypot()
  9. usb hid gadget驱动
  10. HUD - 1873