NAT 与代理服务器 -- NAT,NAPT,正向代理,反向代理

目录

[1. NAT 技术](#1. NAT 技术)

[1.1 NAT 技术背景](#1.1 NAT 技术背景)

[1.2 NAT 的核心工作原理](#1.2 NAT 的核心工作原理)

[1.3 NAPT](#1.3 NAPT)

[1.3.1 NAPT 的工作原理](#1.3.1 NAPT 的工作原理)

[2. 代理服务器](#2. 代理服务器)

[2.1 正向代理](#2.1 正向代理)

[2.2 反向代理](#2.2 反向代理)

[3. NAT 和代理服务器](#3. NAT 和代理服务器)


1. NAT 技术

1.1 NAT 技术背景

在 IPv4 协议中,IP 地址用于现在的网络环境中存在 IP 地址不足的情况,而 NAT(Network Address Translation,网络地址转换)是解决 IPv4 地址不足问题的关键技术。其核心目的是在局域网(LAN)和公网(Internet)之间,实现私有 IP 地址与公网 IP 地址的转换映射,使多台内网设备共享少量公网 IP 访问互联网

1.2 NAT 的核心工作原理

如上图所示,全球的网络就是由一个一个子网嵌套式的组成在一起,最后通过一个路由器连入广域网中(公网)。

路由器有两个主要的功能,一是进行地址转换,二是构建子网

一个路由器可以配置两个 IP 地址,一个是 LAN 口 IP(子网 IP),一个是 WAN 口 IP(上级网络 IP)

一般家用的主机,都是通过网线连在路由器的 LAN 口上,这表示这个主机属于该路由器构建的子网当中。

在路由器构建的子网当中,路由器的子网 IP 通常都是 192.168.1.1,子网内的主机 IP 地址不能重复,且网络号都为 192.168.0.0。但是不在同一子网的主机 IP 地址可以重复

每一个路由器在网络中叫做一个节点,运营商就可以将这些节点分成很多层级,最外层的路由器叫做进出口路由器,WAN 口 IP 就是一个公网 IP子网内的主机需要和外部网络进行通信时,路由器将 IP 协议首部中 IP 地址进行替换(将 LAN 口 IP 替换为 WAN 口 IP),这样逐级替换,最终内网发出的数据包中的 IP 地址就被替换成了一个公网 IP ,这种技术成为 NAT(网络地址转换)

1.3 NAPT

使用 NAT 技术可以在解决 IP 地址不足的情况下,使其在内网的主机能够访问到公网上的服务器。但是公网中的服务器想要将应答返回到子网的主机上是做不到的。因为当内网 IP 将数据发送到出入口路由器,路由器使用 NAT 技术将内网 IP 转换成公网 IP,把数据发送给服务器之后,服务器返回应答时,数据包中的目的 IP 为出入口路由器的公网 IP ,所以公网返回的应答到不了子网中的主机中

这时候就需要 NAPT(Network Address Port Translation,网络地址端口转换) 技术来解决这个问题。NAPT 是 NAT 技术的一种扩展形式。它的核心功能是在转换 IP 地址的同时,对传输层端口号进行映射,从而实现多个内部主机通过同一个公网 IP 地址访问互联网的需求

1.3.1 NAPT 的工作原理

NAPT 采用 IP + Port 的方式构建映射关系

如上图所示,客户端 A、B、C 属于同一个子网中,NAT 路由器另外一端连接的是一个公网上的服务器。

当客户端 A 对服务器进行访问的时候,通过 NAT 路由器,路由器不仅将客户端 A 的 IP 地址转换成公网 IP 地址,还将客户端 A 的端口号进行了映射,所以客户端 A 到路由器的转换为:10.0.0.10:1025 -> 202.244.174.37:1025,当客户端 B 使用相同的端口对服务器进行访问的时候,IP 地址的转换和客户端 A 一样,端口号也一样,这时候为了避免冲突,就将端口号映射为另外一个端口号,则客户端 B 到路由器的转换为:10.0.0.11:1025 -> 202.244.174.37:1026

当服务器返回数据的时候,就可以通过上述的映射关系,找到子网中对应的主机了。

上述的这种映射关系是由 NAT 路由器自动维护的。例如在 TCP 建立连接时,就会生成这个表项,在断开连接后,就会删除这个表项。

2. 代理服务器

2.1 正向代理

正向代理(Forward Proxy)是一种位于客户端(用户)与目标服务器之间的中介服务器,客户端通过正向代理向互联网发送请求,代理服务器代表客户端与目标服务器通信,并将响应返回给客户端

正向代理的功能如下:

(1)突破访问限制:通过代理服务器允许访问目标网络的区域(如科学上网)。

(2)缓存加速:代理服务器可缓存用户常用资源(如网页、图片、视频等),减少重复请求服务器,减少通信并且减少重复请求相同资源的带宽消耗。

(3)隐私保护:隐藏客户端的真实 IP 地址,目标服务器仅能看到代理服务器的 IP。

(4)内容过滤:正向代理可以根据预设的规则对客户端的请求或响应进行过滤,如屏蔽广告、阻止恶意网站等。

2.2 反向代理

反向代理(Reverse Proxy)是位于目标服务器之前的中介服务器,客户端向反向代理发送请求,代理服务器根据规则将请求转发至后端的真实服务器,并将响应返回给客户端,客户端无需直到真实服务器的存在

反向代理的功能如下:

(1)负载均衡:将请求分发到多个后端服务器,避免单台服务器过载(如 Nginx)。

(2)安全防护:隐藏真实服务器的 IP 地址,阻拦直接针对服务器的攻击。

(3)缓存与性能优化:缓存静态资源(如 HTML、图片等),减少后端服务器的压力。

(4)服务聚合:统一对外提供的接口,屏蔽后端法务的架构细节。

3. NAT 和代理服务器

路由器往往都具备 NAT 设备的功能,通过 NAT 设备进行中转,完成子网设备和其他子网设备的通信。

代理服务器看上去和 NAT 设备有一点像。客户端向代理服务器发送请求,代理服务器将情趣转发给真正要请求的服务器,服务器返回结果后,代理服务器又把结果回传给客户端。

但是这两者是有区别的:

(1)从应用上讲,NAT 设备是网络基础设备之一,解决的是 IP 不足的问题;代理服务器则更贴近具体应用,比如通过代理服务器进行科学上网,以及进行游戏加速。

(2)从工作层级上讲,NAT 是工作在网络层,直接对 IP 地址进行替换;代理服务器往往工作在应用层。

(3)从使用范围上讲,NAT 一般在局域网的出口部署,代理服务器可以部署在局域网,可以部署在广域网,也可以跨网络部署。

(4)从本质上讲,NAT 一般集成在防火墙、路由器等硬件设备上;代理服务器则是一个软件程序,需要部署在服务器上。

相关推荐
半桔17 分钟前
【Linux手册】进程的状态:从创建到消亡的“生命百态”
linux·运维·服务器·汇编·深度学习·面试
小艺E2 小时前
裸金属服务器深度评测:云计算时代的性能与安全担当
服务器·安全·云计算
小阳人2 小时前
rockylinuxapache和Linux服务配置
linux·运维·服务器
嗷嗷哦润橘_3 小时前
如何用一台服务器用dify私有部署通用的大模型应用?
运维·服务器·人工智能·python·深度学习·计算机视觉
字节高级特工3 小时前
每日一篇博客:理解Linux动静态库
linux·运维·服务器·c语言·c++·windows·ubuntu
ldj20203 小时前
云计算-专有网络VPC
运维·服务器
学习编程的gas3 小时前
Linux软件管理包-yum和基础开发工具-vim
linux·运维·服务器
随心............3 小时前
linux虚拟机yum命令报错解决方案
linux·运维·服务器
?ccc?3 小时前
LVS+Keepalived高可用群集
运维·服务器·lvs