[网络]NAT、代理服务、内网穿透、内网打洞

目录

一、NAT

1.1 NAT 技术背景

1.2 NAT IP 转换过程

1.3 NAPT(Network Address Port Translation)

1.地址转换表

2. NAPT(网络地址端口转换Network Address Port Translation)

3. NAT技术的缺陷

二、代理服务器

2.1 正向代理

2.2 反向代理

2.3 正向代理与反向代理

2.4 NAT 和代理服务器

三、内网穿透


一、NAT

        NAT(Network Address Translation,网络地址转换)技术是一种在计算机网络中广泛使用的技术,主要用于将私有网络地址(如局域网内部地址)转换为公共网络地址(如互联网地址),以实现内部网络用户能够安全、有效地访问外部网络。

1.1 NAT 技术背景

IPv4 协议中, 存在IP 地址数量不充足的问题 ,而NAT 技术是当前解决 IP 地址不够用的主要手段, 是路由器的一个重要功能;

  • NAT 能够将私有 IP 对外通信时转为全局 IP. 也就是就是一种将私有 IP 和全局 IP 相互转化的技术方法:
  • 很多学校, 家庭, 公司内部采用每个终端设置私有 IP, 而在路由器或必要的服务 器上设置全局 IP;
  • 全局 IP 要求唯一, 但是私有 IP 不需要; 在不同的局域网中出现相同的私有 IP 是完全不影响的;

1.2 NAT IP 转换过程

如图所示,主机A想要访问公网中的一台服务器,刚开始数据包目的地址就是服务器的公网IP地址,源IP地址是主机A所在局域网的私有IP地址,由于目的地址是公网IP地址,在自己所在局域网中一定找不到,所以数据包就会不断地向上层路由器交付,当数据包经过NAT路由器时,由于死亡IP不能出现在公网中,路由器就会将源地址换为自己的WAN口IP地址,由自己代主机A发送数据。

当服务器也想给主机A发送数据时,会存在一个问题,服务器收到的源IP地址是NAT路由器的WAN口IP地址,那就无法准确找到主机A,其实在NAT路由器中维护了一张地址转换表,可以根据这个表中的映射关系找到主机A在这个局域网中的IP地址。

1.3 NAPT(Network Address Port Translation

1.地址转换表

当数据包进过NAT路由器时,路由器会将源IP地址修改为自己的WAN口IP地址,此时NAT路由器也会自动生成一张地址转化表,构建转换的映射关系

在上述的例子中,会生成这样的转换表

但是,我们发现,一个局域网内的主机在经过NAT路由器替换IP后,发给目标主机的源IP地址都是路由器的WAN口IP,这就存在一个问题,这个转化是单向的,主机可以向目的服务器发送数据,但是如果服务器也要给主机发送数据时,由于不同主机给自己发送的源IP地址是一样的,这就导致服务器给不同主机发送的数据只能发送到NAT路由器,而NAT路由器就算查表也无法判断数据到底是发给谁的。不过NAPT就可以解决这个问题。

2. NAPT(网络地址端口转换Network Address Port Translation

NAPT属于NAT(Network Address Translation,网络地址转换)的一种变种。为了解决上述问题,使用的是 IP+port 来建立这个关联关系,NAPT的主要功能是在私有网络和公共网络之间实现地址和端口的转换,以允许多个内部设备共享一个公共IP地址进行网络通信。

当内部设备(如计算机、手机等)通过NAT设备(如路由器)发送数据包到外部网络时,NAPT设备会将数据包的源IP地址和源端口号替换为公共IP地址和一个唯一的端口号,也就是说替换前后的IP+端口号是互为键值的,NAPT设备会维护一个映射表,记录内部设备的私有IP地址和端口号与公共IP地址和端口号之间的对应关系。当外部网络响应数据包时,NAPT设备会根据映射表将数据包的目标IP地址和目标端口号转换回相应的内部设备的私有IP地址和端口号,然后将数据包转发给内部设备。

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

3. NAT技术的缺陷

由于 NAT 依赖这个转换表, 所以有诸多限制:

  • 无法从 NAT 外部向内部服务器建立连接;
  • 装换表的生成和销毁都需要额外开销;
  • 通信过程中一旦 NAT 设备异常, 即使存在热备, 所有的 TCP 连接也都会断开;

二、代理服务器

代理服务器是计算机网络中的一种重要应用,它位于客户端和服务器之间,充当了二者之间的中介角色。它可以接收客户端的请求,并代表客户端向服务器发起请求,然后将服务器返回的数据转发给客户端。

2.1 正向代理

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

  • 提高访问速度:正向代理服务器可以将目的服务器对应的资源缓存到本地,此时当其他人要访问该资源时,直接在正向代理服务器就可以获取,而不需要再次进行外网访问(部分加速器)。
  • 访问控制:访问控制:通过正向代理,可以实现对特定网站的访问控制,如限制员工在工作时间访问娱乐网站。
  • 内容过滤:正向代理可以根据预设的规则对请求或响应进行过滤,如屏蔽广告、阻止恶意网站等。
  • 隐藏客户端身份:正向代理可以隐藏客户端的真实IP地址,保护客户端的隐私。

工作原理:

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

应用场景

企业网络管理:企业可以通过正向代理实现对员工网络访问的管理和控制,确保员工在工作时间内专注于工作,避免访问不良网站或泄露公司机密

公共网络环境:在公共场所如图书馆、学校等提供的网络环境中,通过正向代理可以实现对网络资源的合理分配和管理,确保网络使用的公平性和安全性。

内容过滤与保护:家长可以通过设置正向代理来过滤不良内容,保护孩子免受网络上 的不良信息影响。

提高访问速度:对于经常访问的网站或资源,正向代理可以通过缓存机制提高访问速 度,减少网络延迟。

跨境电商与海外访问:对于跨境电商或需要访问海外资源的企业和个人,正向代理可 以帮助他们突破网络限制,顺畅地访问海外网站和资源。

2.2 反向代理

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

基本原理

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

应用场景

负载均衡:反向代理服务器可以根据配置的负载均衡策略,将客户端的请求分发到多个后端服务器上,以实现负载均衡。这有助于提升网站的整体性能和响应速度, 特别是在高并发场景下。

安全保护:反向代理服务器可以隐藏后端 Web 服务器的真实 IP 地址,降低其被直接攻击的风险。同时,它还可以配置防火墙、访问控制列表(ACL)等安全策略, 对客户端的请求进行过滤和限制,以保护后端服务器的安全。

缓存加速:反向代理服务器可以缓存后端 Web 服务器的响应内容,对于重复的请求,它可以直接从缓存中返回响应,而无需再次向后端服务器发起请求。这可以大大减少后端服务器的负载,提升网站的响应速度。

内容过滤和重写:反向代理服务器可以根据配置的规则对客户端的请求进行过滤 和重写,例如添加或删除请求头、修改请求路径等。这有助于实现一些特定的业务需求,如 URL 重写、用户认证等。

动静分离:在大型网站中,通常需要将静态资源和动态资源分开处理。通过将静态资源部署在反向代理服务器上,可以直接从反向代理服务器返回静态资源的响应, 而无需再次向后端服务器发起请求。这可以大大提升静态资源的访问速度。

CDN(Content Delivery Network,内容分发网络)就是采用了反向代理的原理

2.3 正向代理与反向代理
  • 正向代理是客户端的代理,帮助客户端访问其无法访问的服务器资源的,而反向代理则是服务器的代理,帮助服务器做负载均衡、安全防护等工作的。
  • 正向代理一般是客户端架设的,而反向代理一般是服务端架设的。
  • 正向代理中,服务器不知道真正的客户端到底是谁,服务器认为正向代理服务器就是真实的客户端,而反向代理中,客户端不知道真正的服务器是谁,客户端认为反向代理服务器就是真实的服务器。
2.4 NAT 和代理服务器

路由器往往都具备 NAT 设备的功能, 通过 NAT 设备进行中转, 完成子网设备和其他子 网设备的通信过程. 代理服务器看起来和 NAT 设备有一点像. 客户端像代理服务器发送请求, 代理服务器将 请求转发给真正要请求的服务器; 服务器返回结果后, 代理服务器又把结果回传给客户端.

那么 NAT 和代理服务器的区别有哪些呢?

  • 从应用上讲, NAT 设备是网络基础设备之一, 解决的是 IP 不足的问题. 代理服务器则是更贴近具体应用, 比如通过代理服务器进行翻墙, 另外像迅游这样的加速器, 也是使用代理服务器.
  • 从底层实现上讲, NAT 是工作在网络层, 直接对 IP 地址进行替换. 代理服务器往往工作在应用层.
  • 从使用范围上讲, NAT 一般在局域网的出口部署, 代理服务器可以在局域网做, 也可以在广域网做, 也可以跨网.
  • 从部署位置上看, NAT 一般集成在防火墙, 路由器等硬件设备上, 代理服务器则是一个软件程序, 需要部署在服务器上.

翻墙的原理(仅解释原理)

       我们在网络中发送的数据都是要经过运营商的,当我们想访问外网的网址例如githup等等,运营商检测出我们访问的目的IP是公网,就会拦截我们的请求,所以我们想要访问公网中的网址首先需要骗过运营商。首先我们需要一台可以直接访问公网的服务器,并在上面部署一个代理软件server,我们也需要在自己的主机上安装上代理软件client,假设我们想访问githup的网站,首先在我们的主机上构建一个Http请求,并对这个请求进行加密,发送给我们的服务器,运营上看到这个数据报时,看到目的IP是一台合法的服务器,由于我们对数据进行了加密,运营商也只能将数据推送给我们的服务器,此时我们的服务器就可以对数据进行解密,然后访问我们请求的网站,并将请求的数据进行加密在发送给我们的主机,这样就实现了翻墙

三、内网穿透

定义

内网穿透是指在内网环境下的设备通过互联网与外界通信的技术手段,它能够让无法直接暴露在公网上的设备被外界访问。这一技术通过在内网和外网之间建立一条安全的隧道,将内网中的数据封装起来,通过外网传输到目标主机,从而实现内网设备与外网的互通。

实现原理:

  • 首先在代理服务器上部署安装配置"frps"(frp服务端),在主机部署安装配置"frpc"(frp客户端)。
  • 让一台主机与代理服务器建立连接,生成NAT映射表。
  • 通过"frpc"将本地某个端口映射到代理服务器"frps"的某端口。

这样我们在另一台主机通过访问服务器的特定端口,就可以直接访问到内网主机中的特定端口

内网打洞

定义:

内网打洞是在内网中进行网络连接的建立和通信的过程。它依赖于NAT(网络地址转换)技术,通过在内网和外网之间建立一个虚拟通道,使得内网主机能够通过这个通道与外网进行通信。

实现原理:

假设有两个存在不同局域网的主机,这两个主机都向同一个服务器构建好了NAT映射,服务器可以将两台主机的源IP和端口号交换给对方,此时两台内网中的主机就知道了对方的NAT路由器的WAN口IP地址和端口号,此时这两台主机就可以不经过服务器直接开始通信,当数据发送到对方的NAT路由器时,查转换表就可以直接找到对应主机,将数据发送。

内网打洞可以大幅度减轻服务器的压力,我们使用的QQ就是使用了这种技术

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/435586.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

济南站活动回顾|IvorySQL中的Oracle XML函数使用示例及技术实现原理

近日,由中国开源软件推进联盟PG分会 & 齐鲁软件园联合发起的“PostgreSQL技术峰会济南站”在齐鲁开源社举办。瀚高股份IvorySQL作为合作伙伴受邀参加此次活动。 瀚高股份IvorySQL技术工程师 向逍 带来「IvorySQL中的Oracle XML函数兼容」的议题分享。在演讲中&a…

EasyCVR视频汇聚平台:解锁视频监控核心功能,打造高效安全监管体系

随着科技的飞速发展,视频监控技术已成为现代社会安全、企业管理、智慧城市构建等领域不可或缺的一部分。EasyCVR视频汇聚平台作为一款高性能的视频综合管理平台,凭借其强大的视频处理、汇聚与融合能力,在构建智慧安防/视频监控系统中展现出了…

后端Java-SpringBoot整合MyBatisPlus步骤(超详细)

1.新建项目。 2.点击完上一步的next之后,选择pom.xml文件中的依赖。 3.点击pom文件进行项目初始化。 按照下面的俩步骤刷新一下maven ,让文件生效 4.新建一个application.yml文件 5. 新建一个数据库mp,在数据库中新建一张user表 6.连接数据…

pdf文档翻译成英文很简单?搞定复杂的外语文献文档就靠它

转眼间又是一年国庆,怎么样,大一新生们适应得还好吗? 没事,刚到陌生的校园环境中,分分钟都在想家,还没适应集体宿舍生活很正常的...... 什么?已经有同学在着手准备写论文了?而且需要…

Facebook对现代社交互动的影响

自2004年成立以来,Facebook已经成为全球最大的社交媒体平台之一,改变了人们的交流方式和社交互动模式。作为一个数字平台,Facebook不仅为用户提供了分享生活点滴的空间,也深刻影响了现代社交互动的各个方面。本文将探讨Facebook如…

git使用“保姆级”教程4——版本回退及分支讲解

一、版本回退 1、历史回退(版本回退)——命令行git reset --hard 版本编号 注意:当前命令会让工作区的内容发生改变,可以理解成历史区(master分支)直接回到工作区比如:从版本4回到版本3,则工作区只会显示版本3的代码内容 1.1、指…

【Postgresql】安装新手教程

在以下postgresql官网下载软件 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads下载完成后安装,找个记事本记录下安装过程中填写的数据库管理原的password和port 在所有程序目录中打开pgadmin 输入刚才的数据库管理员密码 自动跳转到以下…

腾讯二面:40亿QQ号, 1G内存,怎么去重?

面试这种场合,大家都懂,面试官总喜欢出点“奇奇怪怪”的题目,问你点“看似不可能”的问题——比如: 40亿个QQ号要去重,内存还只能给你1GB。 就像老板让你用两块钱预算搞个全公司团建,还得拍成《向往的生活》…

速通数据结构与算法第七站 排序

系列文章目录 速通数据结构与算法系列 1 速通数据结构与算法第一站 复杂度 http://t.csdnimg.cn/sxEGF 2 速通数据结构与算法第二站 顺序表 http://t.csdnimg.cn/WVyDb 3 速通数据结构与算法第三站 单链表 http://t.csdnimg.cn/cDpcC 4 速通…

1. 如何在服务器上租GPU跑实验 (以AutoDL为例) - 深度学习·科研实践·从0到1

目录 前言 1. 在AutoDL上注册账号 2. 在算力市场选择GPU 3. 创建实例 4. 控制台-容器实例界面(核心) 4.1 无卡模式(常用) 5. 帮助文档 前言 好记性不如烂笔头,本专栏将详细记录下本人学习深度学习工程实践&…

【Python】YOLO牛刀小试:快速实现视频物体检测

YOLO牛刀小试:快速实现视频物体检测 在深度学习的众多应用中,物体检测是一个热门且重要的领域。YOLO(You Only Look Once)系列模型以其快速和高效的特点,成为了物体检测的首选之一。本文将介绍如何使用YOLOv8模型进行…

【Git原理与使用】Git初识基本操作

Git初识&&基本操作 1.初识Git2.Git安装3.Git基本操作3.1创建Git本地仓库3.2配置Git3.3认识工作区、暂存区、版本库3.4添加文件3.5修改文件3.6版本回退3.7撤销修改3.8删除文件 点赞👍👍收藏🌟🌟关注💖&#x1f…

基于单片机8路数字电压表电压采集系统

**单片机设计介绍,基于单片机8路数字电压表电压采集系统 文章目录 前言概要功能设计设计思路 软件设计效果图 程序设计程序文章目录 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技…

数据集-目标检测系列-鼠检测数据集 mouse >> DataBall

数据集-目标检测系列-鼠检测数据集 mouse >> DataBall 数据集-目标检测系列-老鼠检测数据集 mouse 数据量:6k 想要进一步了解,请联系。 DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。…

Redis 基础数据改造

优质博文:IT-BLOG-CN 一、服务背景 基础数据查询服务:提供航司、机场、票台、城市等基础数据信息。 痛点一:因为基础数据不属于频繁更新的数据,所以每个应用都有自己和缓存,当基础数据更新后,各个应用缓存…

用友U8+CRM leadconversion.php SQL注入复现

0x01 产品描述: 用友U8-CRM是企业利用信息技术,是一项商业策略,它通过依据市场细分组织企业资源、培养以客户为中心的经营行为、执行以客户为中心的业务流程等手段来优化企业的客户满意度和获利能力。 0x02 漏洞描述: 用友 U8 CR…

指定PDF或图片多个识别区域,识别区域文字,并导出到Excel文件中

常见场景 用户有大量图片/PDF文件,期望能将图片/PDF中的多个区域中的文字批量识别出来,并导入到Excel文件中。期望工具可以批量处理、离线识别(保证数据安全性)。手工操作麻烦。具体场景:用户有工程现场照片&#xff…

【学习笔记】基于 Wasserstein距离的分布鲁棒优化

衡量不同分布间距离 在构建模糊集的方式上,除了利用矩信息之外,另一种思路是衡量真实分布与经验分布之间的距离。在这种情况下,我们以经验分布为中心,将与经验分布不超过某一距离的所有分布纳入模糊集中。于是,如何定…

onlyoffice连接器(connector)开发使用精讲 二次开发 深入开发【二】

前言 这篇教程开始,全部为进阶版使用,你需要先熟悉使用最基础的连接器教程,如果你没有正常接入,请参考教程【一】:onlyoffice连接器(connector)开发使用精讲 二次开发 深入开发【一】_onlyoffice 连接器-CSDN博客 该教…

Jira Cloud涨价5%-20%,钉钉项目Teambition成优选替代

近日,Jira再次宣布涨价,Cloud版涨幅达到5%-20%,这一消息来源于Atlassian官方面向合作伙伴发布的2024年最新涨价通知。 Atlassian旗下核心产品,包括Jira、Confluence、JiraServiceManagement等的Cloud版本价格将有所提高&#xff…