NAT,代理服务,内网穿透

NAT技术

NAT技术背景核心总结

  • 产生原因:IPv4地址资源严重不足,NAT是当前解决该问题的核心手段,也是路由器的关键功能。
  • 核心作用 :实现私有IP ↔ 全局IP 的地址转换,让多个内网设备共享少量全局IP访问公网。
  • 典型应用场景:学校、家庭、公司等内网环境中,终端使用私有IP,仅在路由器/服务器上配置全局IP。
  • 地址特性
    • 全局IP:必须在公网中唯一。
    • 私有IP:无需全局唯一,不同局域网可重复使用相同私有IP,不会产生冲突。

NAT IP转换过程

NAPT---NAT地址转化表

如果局域网内, 有多个主机都访问同⼀个外网服务器, 那么对于服务器返回的数据中, 目的IP都是相同的. 那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?

使用IP+port来建立这个关联关系

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

📌 NAT技术的缺陷

NAT技术依赖地址转换表实现地址映射,因此存在以下限制:

  • 外部无法主动发起连接无法从NAT外部网络直接向内网服务器建立连接 ,因为转换表中不存在对应的映射条目---必须先由内到外,在由外到内.
  • 额外性能开销:转换表的生成、维护和销毁过程会消耗路由器的计算与存储资源。
  • 连接可靠性风险:通信期间若NAT设备发生异常,即使有热备机制,所有已建立的TCP连接也会全部中断。

代理服务器

正向代理服务器

  • 位置 :在客户端目标服务器之间。
  • 行为代表客户端向服务器发请求。
  • 流程
    1. 客户端把请求发给代理
    2. 代理转发给目标服务器
    3. 服务器响应给代理
    4. 代理再返回给客户端
  • 作用
    • 隐藏客户端真实IP
    • 控制客户端访问权限
    • 加速访问(缓存)

总结: 正向代理 = 替客户端出头,帮客户端访问服务器,隐藏客户端。

正向代理工作原理

  1. 请求发起:客户端将请求发送至正向代理服务器。
  2. 代理预处理:正向代理服务器接收请求后,按配置执行预处理操作(如缓存查找、内容过滤、访问控制等)。
  3. 转发请求:代理服务器将处理后的请求转发给目标服务器。
  4. 服务器响应:目标服务器处理请求,并将响应结果返回给正向代理服务器。
  5. 响应回传:正向代理服务器将目标服务器的响应转发回客户端。

典型实现:Nginx 可作为正向代理服务器来实现上述流程。

反向代理服务器

反向代理服务器

  • 位置 :在目标服务器集群客户端之间。
  • 行为代表服务器接收客户端请求。
  • 流程
    1. 客户端请求发给反向代理
    2. 代理转发到后端合适的服务器
    3. 服务器处理后返回给代理
    4. 代理再返回给客户端
  • 作用
    • 隐藏后端服务器真实地址
    • 负载均衡
    • 缓存加速、安全防护
    • 统一入口

总结: 反向代理 = 替服务器挡在前面,帮服务器接收请求,隐藏服务器。


反向代理服务器应用场景

  • 负载均衡:根据配置策略将客户端请求分发到多台后端服务器,提升高并发场景下的性能与响应速度。
  • 安全保护:隐藏后端服务器真实IP,降低直接攻击风险;可配置防火墙、ACL等策略过滤请求,保护后端服务安全。
  • 缓存加速:缓存后端响应内容,重复请求直接从缓存返回,减少后端负载,提升响应速度。
  • 内容过滤与重写:按规则过滤、修改请求(如增删请求头、修改URL路径),实现URL重写、用户认证等业务需求。
  • 动静分离:将静态资源部署在反向代理上,直接由代理返回静态资源响应,提升静态资源访问速度。

典型应用CDN(内容分发网络) 本质就是基于反向代理原理实现的。

CDN(Content Delivery Network,内容分发网络)是基于反向代理原理构建的分布式网络,核心目标是让用户就近获取内容,提升访问速度与稳定性。

核心原理

  1. 资源缓存与分发:将源站的静态资源(图片、CSS、JS、视频等)缓存到遍布全球的边缘节点(反向代理服务器)。
  2. 就近访问 :用户请求时,CDN通过智能调度,将请求导向离用户最近、负载最低的边缘节点。
  3. 回源机制:若边缘节点无对应缓存,则向源站请求资源,缓存后再返回给用户。

总结
CDN = 把内容搬到用户家门口的分布式反向代理网络,让用户更快、更稳地获取资源。

NAT和代理服务器对比

  1. 应用层面
  • NAT :网络基础设施,核心目的是解决IPv4地址不足,让多个内网设备共享公网IP。
  • 代理服务器:贴近具体业务应用,例如翻墙、游戏加速(如迅游)、负载均衡、缓存加速等。
  1. 底层实现
  • NAT :工作在网络层(第3层),直接对IP地址进行替换(源/目的IP转换),对上层应用透明。
  • 代理服务器 :通常工作在应用层(第7层),需要解析应用层协议(如HTTP),对请求/响应进行处理后再转发。
  1. 使用范围
  • NAT :一般部署在局域网出口(如家庭/公司路由器),仅用于内网与公网之间的地址转换。
  • 代理服务器:部署更灵活,可在局域网、广域网,甚至跨网络部署,适用场景更广。
  1. 部署形态
  • NAT :通常集成在防火墙、路由器等硬件设备中,是网络设备的基础功能。
  • 代理服务器 :以软件程序形式存在(如Nginx、Squid),需要部署在独立服务器上运行。

内网穿透

什么是内网穿透?

内网穿透(也叫NAT穿透 ),就是让公网设备可以直接访问到内网里的机器(比如家里的电脑、树莓派、公司服务器),解决内网设备没有独立公网IP、被路由器NAT隔离的问题.

总结 :只要能让公网访问到内网设备,都叫内网穿透。

常见两种:

  • 公网服务器中转(frp、nps)
  • P2P 打洞直连

如下是内网穿透最简单的例子:

内网打洞

两台都在内网的设备,互相主动发包,在 NAT 上开"临时通道",实现直连。

它是内网穿透的一种(P2P 方式)


通过各自主动向对方公网地址发包,在 NAT 上建立了 "记忆"(映射表),让对方的流量能直接进入内网,实现端到端直连。

相关推荐
S1998_1997111609•X3 分钟前
login:/-system.web,dex.dmp,b-scode:app·%
网络·数据库·百度·facebook·twitter
仍然.19 分钟前
初识计算机网络
网络·计算机网络
小程同学>o<42 分钟前
Linux 应用层开发入门(二十五)| 网络编程
linux·网络·嵌入式软件·嵌入式应用层·应用层开发·linux应用层开发
忡黑梨1 小时前
eNSP_DHCP配置
c语言·网络·c++·python·算法·网络安全·智能路由器
YaBingSec1 小时前
玄机网络安全靶场:Jackson-databind 反序列化漏洞(CVE-2017-7525)
linux·网络·笔记·安全·web安全
TechWayfarer1 小时前
网络安全溯源实战:78.1%网络攻击来自境外,如何精准定位攻击源
网络·安全·web安全
ElevenS_it1881 小时前
日志在哪里找?分布式环境下日志采集断裂的5个排查路径
运维·网络·分布式
半壶清水1 小时前
ubuntu中部署开源交换机模拟器bmv2详细步骤
linux·运维·网络·网络协议·tcp/ip·ubuntu
爱吖吖吖a2 小时前
CSMA/CA(载波侦听多路访问/冲突避免)
网络·网络协议
minji...2 小时前
Linux 网络套接字编程(六)TCP的通信是全双工的,自定义协议的定制,序列化和反序列化
linux·运维·服务器·网络·c++