当前位置: 首页 > news >正文

【Linux网络与网络编程】12.NAT技术内网穿透代理服务

1. NAT技术

之前我们说到过 IPv4 协议中IP 地址数量不充足的问题可以使用 NAT 技术来解决。还提到过本地主机向公网中的一个服务器发起了一个网络请求,服务器是怎么将应答返回到该本地主机呢?(如何进行内网转发?)

这就需要用到 NAT 技术。

NAT 能够将私有 IP 对外通信时转为全局 IP,也就是就是一种将私有 IP 和全局 IP 相互转化的技术方法。

在进行NAT转化时,有可能只替换源IP,也可能既替换源IP又替换源端口号。[ IP + 端口号 ] 的映射本质就是内网进程和公网进程的映射关系。

可以看出,当原始报文经过路由器时,会对报文中的源IP替换为途径路由器的WAN口IP。

这也就解决了我们的上述问题,NAT转化的过程中还会产生转移表(NAPT),服务器的应答报文转回本地主机时,首先会把应答报文推送回到我们的入口路由器,经由路由器进行反向查找NAPT中的映射关系进行替换即可完成内网转发。

NAPT的关联关系是由 NAT 路由器自动维护的。例如在 TCP 的情况下,建立连接时就会生成这个表项;在断开连接后就会删除这个表项。

2. 内网穿透

如果我们想从学校远程登陆上家里的linux服务器(内网访问内网)应该怎么做?

应用场景:todesk

3. 代理服务器

3.1 正向代理服务器

正向代理(Forward Proxy)是一种常见的网络代理方式,它位于客户端和目标服务器之间,代表客户端向目标服务器发送请求。正向代理服务器接收客户端的请求,然后将请求转发给目标服务器,最后将目标服务器的响应返回给客户端。通过这 种方式,正向代理可以实现多种功能,如提高访问速度、隐藏客户端身份、实施访问控制等。

客户端将请求发送给正向代理服务器,正向代理服务器接收请求,根据配置进行处理,如缓存查找、内容过滤等,接下来将处理后的请求转发给目标服务器,目标服务器处理请求,将响应返回给正向代理服务器,正向代理服务器将响应返回给客户端。 

应用场景:

企业网络管理:企业可以通过正向代理实现对员工网络访问的管理和控制,确保员工在工作时间内专注于工作,避免访问不良网站或泄露公司机密。
公共网络环境:在公共场所如图书馆、学校等提供的网络环境中,通过正向代理可以 实现对网络资源的合理分配和管理,确保网络使用的公平性和安全性。
内容过滤与保护:家长可以通过设置正向代理来过滤不良内容,保护孩子免受网络上 的不良信息影响。
提高访问速度:对于经常访问的网站或资源,正向代理可以通过缓存机制提高访问速度,减少网络延迟。
跨境电商与海外访问:对于跨境电商或需要访问海外资源的企业和个人,正向代理可 以帮助他们突破网络限制,顺畅地访问海外网站和资源。 

3.2 反向代理服务器 

反向代理服务器是一种网络架构模式,其作为 Web 服务器的前置服务器,接收来自客户端的请求,并将这些请求转发给后端服务器,然后将后端服务器的响应返回 给客户端。这种架构模式可以提升网站性能、安全性和可维护性等。

反向代理服务器位于客户端和 Web 服务器之间,当客户端发起请求时,它首先 会到达反向代理服务器。反向代理服务器会根据配置的规则将请求转发给后端的 Web 服务器,并将 Web 服务器的响应返回给客户端。在这个过程中,客户端并不知道实际 与哪个 Web 服务器进行了交互,它只知道与反向代理服务器进行了通信。

应用场景:

负载均衡:反向代理服务器可以根据配置的负载均衡策略,将客户端的请求分发到多个后端服务器上,以实现负载均衡。这有助于提升网站的整体性能和响应速度, 特别是在高并发场景下。
• 安全保护:反向代理服务器可以隐藏后端 Web 服务器的真实 IP 地址,降低其被直接攻击的风险。同时,它还可以配置防火墙、访问控制列表(ACL)等安全策略, 对客户端的请求进行过滤和限制,以保护后端服务器的安全。
缓存加速:反向代理服务器可以缓存后端 Web 服务器的响应内容,对于重复的请求,它可以直接从缓存中返回响应,而无需再次向后端服务器发起请求。这可以大大减少后端服务器的负载,提升网站的响应速度。
内容过滤和重写:反向代理服务器可以根据配置的规则对客户端的请求进行过滤和重写,例如添加或删除请求头、修改请求路径等。这有助于实现一些特定的业务需求,如 URL 重写、用户认证等。
动静分离:在大型网站中,通常需要将静态资源和动态资源分开处理。通过将静态资源部署在反向代理服务器上,可以直接从反向代理服务器返回静态资源的响应, 而无需再次向后端服务器发起请求。这可以大大提升静态资源的访问速度。
CDN(Content Delivery Network,内容分发网络)就是采用了反向代理的原理。

相关文章:

  • 【前端基础】HTML元素隐藏的四个方法(display设置为none、visibikity设置为hidden、rgba设置颜色、opacity设置透明度)
  • DeepSeek 赋能社会科学:解锁研究新范式
  • 现在市面上三大常用的拓客软件好用吗?
  • 机器学习,深度学习,神经网络,深度神经网络之间有何区别?
  • PostgreSQL内幕剖析——结构与架构
  • C++类与对象--1 特性一:封装
  • 深入浅出IIC协议 - 从总线原理到FPGA实战开发 -- 第一篇:I2C总线协议深度解剖
  • CentOS 下 FTP 与 NFS 服务深度解析:从基础配置到实战应用
  • 深度学习推理引擎---OpenVINO
  • Android核心系统服务:AMS、WMS、PMS 与 system_server 进程解析
  • 如何在纷杂的环境当中保持保持独立思考能力?
  • linux c++头文件生成源文件 使用python脚本 配置vim快捷键
  • Unity3D仿星露谷物语开发44之收集农作物
  • OAuth2.0
  • 6to4、6over4的类比解释
  • 使用tensorRT10部署低光照补偿模型
  • MySQL相关
  • [强化学习的数学原理—赵世钰老师]学习笔记02-贝尔曼方程
  • 支持selenium的chrome driver更新到136.0.7103.94
  • 【2025年软考中级】第一章1.6 安全性、可靠性、性能评价
  • 看展 | 黄永玉新作展,感受赤子般的生命力
  • 以色列媒体:哈马斯愿意释放部分人员换取两个月停火
  • 荣盛发展:新增未支付债务11.05亿元
  • 当“小铁人”遇上青浦,看00后如何玩转长三角铁三
  • 高飞已任南航集团党组副书记
  • 国际乒联主席索林:洛杉矶奥运会增设混团是里程碑事件