计算机网络——NAT

embedded/2025/3/17 14:20:47/

一、什么是NAT?

NAT(Network Address Translation,网络地址转换) 是一种将 私有IP地址 与 公有IP地址 相互映射的技术,主要用于解决IPv4地址不足的问题。它像一名“翻译官”,在数据包经过路由器或防火墙时修改其IP地址,实现内网设备通过少量公网IP访问互联网。

核心作用:

  • 节省公网IP:多个设备共享一个公网IP。

  • 隐藏内网结构:对外屏蔽内部网络细节,提升安全性。

  • 解决地址冲突:允许不同内网使用相同的私有IP段。


二、什么是NAT转换?

NAT转换是路由器修改数据包IP地址的过程,分为 出站转换(SNAT) 和 入站转换(DNAT)。以下是一个典型流程:

转换步骤(以SNAT为例):

  1. 内网设备发送请求
    PC1(私有IP 192.168.1.10)访问公网服务器 203.0.113.5

  2. 路由器修改源IP
    将源IP从 192.168.1.10 替换为公网IP 203.0.113.1

  3. 服务器响应公网IP
    服务器返回数据到 203.0.113.1

  4. 路由器还原目标IP
    将目标IP 203.0.113.1 还原为 192.168.1.10,转发给PC1。


三、NAT转换的使用场景

场景说明示例
家庭网络多设备(手机、电脑)通过一个公网IP上网家用路由器默认启用NAT
企业内网成百上千员工共享少量公网IP访问外网防火墙部署NAT策略
云服务器为虚拟机分配私有IP,通过NAT访问公网AWS EC2实例使用NAT网关
端口映射将公网IP的特定端口转发到内网服务器(如Web服务)公网IP:80 → 内网服务器:80


四、NAT的种类

1. 静态NAT

  • 特点:一对一固定映射,一个私有IP永久绑定一个公网IP。

  • 用途:托管内网服务器(如Web服务器),支持从公网直接访问。

  • 示例
    内网IP 192.168.1.100 ↔ 公网IP 203.0.113.10

2. 动态NAT

  • 特点:从公网IP池中动态分配IP,映射关系不固定(但同一会话期间不变)。

  • 用途:企业内网多设备临时访问外网。

  • 示例
    内网设备共享公网IP池 203.0.113.1~203.0.113.5

3. NAPT(网络地址端口转换)

  • 特点:多对一映射,通过 端口号 区分不同会话(最常用的NAT类型)。

  • 用途:家庭或小型企业网络,允许多设备共享单一公网IP。

  • 示例

    • PC1:192.168.1.10:1234 → 203.0.113.1:50001

    • PC2:192.168.1.11:5678 → 203.0.113.1:50002


五、NAT和NAPT的区别

对比维度NATNAPT(PAT)
映射方式IP地址一对一映射IP地址 + 端口号多对一映射
公网IP消耗需要与内网设备等量的公网IP仅需1个公网IP
适用场景托管服务器、需要固定公网IP访问的服务普通上网、多设备共享IP
端口复用不支持通过不同端口区分会话
典型设备企业级防火墙、高级路由器家用路由器、小型企业网关
配置复杂度较高(需手动绑定IP)低(自动管理端口映射)

http://www.ppmy.cn/embedded/173368.html

相关文章

传统RAG vs 知识图谱:大模型时代的知识管理革命

引言:为什么需要突破传统RAG? 在大模型应用落地的浪潮中,检索增强生成(RAG)技术通过连接外部知识库,有效缓解了模型的幻觉问题。然而,当面对复杂关系推理、多文档关联分析等场景时,…

mysql-8.0.25-winx64安装步骤

1、下载MySQL安装包 下载地址:https://downloads.mysql.com/archives/community/ 选择安装版本:我选择的是5.1.43的版本,下载到本地,并解压到自己想要放的位置,比如:D:\soft 2、在当前目录下解压下载的安…

设计模式之装饰器模式:原理、实现与应用

引言 装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许你通过将对象放入包含行为的特殊封装对象中来为原对象动态添加新的行为。装饰器模式提供了一种灵活的替代方案,避免了通过继承扩展功能的局限性。本文将深入探讨装…

提升 React 应用性能:使用 React Profiler 进行性能调优

前言 在现代前端开发中,性能优化是一个不可忽视的重要环节。在 React 生态系统中,React Profiler 是一个强大的工具,它可以帮助我们检测和优化应用的性能。 本文将通过通俗易懂的语言介绍 React Profiler 的作用,并展示如何使用它…

Python----数据分析(Pandas一:pandas库介绍,pandas操作文件读取和保存)

一、Pandas库 1.1、概念 Pandas是一个开源的、用于数据处理和分析的Python库,特别适合处理表格类数 据。它建立在NumPy数组之上,提供了高效的数据结构和数据分析工具,使得数据操作变得更加简单、便捷和高效。 Pandas 的目标是成为 Python 数据…

算法——先序中序还原二叉树

晴问算法 记得在dfs那里给指针和数组加&&#xff0c;指针不加不会修改&#xff0c;数组不加会报错 #include <bits/stdc.h>using namespace std;vector<int> preOrder, inOrder; vector<int> result;struct TreeNode {int data;TreeNode *left;TreeNod…

2025年渗透测试面试题总结-某四字大厂实习面试复盘 二面(题目+回答)

网络安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 某四字大厂实习面试复盘 二面 跨域的解决办法原理及安全问题 核心原理 Python多进程与多线程的选择策…

maven的安装配置

目录 一、官网下载压缩包 二、配置环境变量 设置 MAVEN_HOME 添加 MAVEN_HOME\bin 到 PATH 三、配置本机仓库和远程仓库 四、配置idea 一、官网下载压缩包 Download Apache Maven – Maven 如上图。选择这个压缩包 选择好文件&#xff0c;下载完后&#xff0c;配置环境变…