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

计算机网络 | 什么是公网、私网、NAT?

关注:CodingTechWork

引言

  计算机网络是现代信息社会的基石,而网络通信的顺畅性和安全性依赖于有效的IP地址管理和网络转换机制。在网络中,IP地址起到了标识设备和进行数据传输的核心作用。本文将详细讨论公网IP、私网IP以及NAT转换等网络技术概念,帮助您更好地理解计算机网络的运作方式。

什么是IP地址?

  在进入公网IP和私网IP的讨论之前,我们首先要理解IP地址(Internet Protocol Address)。IP地址是网络上每一台设备的唯一标识符。它用于区分不同设备并确保数据能够精确地传输到目标设备。IP地址有两个版本:

  • IPv4:采用32位地址,通常用四个十进制数字表示(如:192.168.1.1)。
  • IPv6:采用128位地址,能够提供更多的地址空间。

公网IP地址

公网IP的定义

  公网IP地址是由互联网服务提供商(ISP)分配的IP地址,能够在互联网上被直接访问和识别。这些IP地址是全球唯一的,不同的设备和服务器通过公网IP地址与全球其他设备进行通信。

公网IP的特点

  • 唯一性:公网IP是全球唯一的,意味着一个公网IP地址只能指向一个特定的设备。
  • 直接可访问性:公网IP可直接与互联网中的其他设备建立连接,数据可以自由流动。
  • 有限性:由于IPv4地址空间有限,公网IP地址是宝贵的资源,尤其在IPv4时代,公网IP数量的匮乏引发了各种网络地址管理和优化措施。

公网IP的用途

  • Web服务器和网站:大多数网站和Web服务器使用公网IP,使得全球用户能够访问。
  • 邮件服务器:电子邮件传输依赖于公网IP地址。
  • 网络设备:如路由器、交换机、网络摄像头等,需要使用公网IP来进行远程访问。

私网IP地址

私网IP的定义

  私网IP地址是指在一个局域网(LAN)内部使用的IP地址。这些地址不能直接访问互联网,而是仅用于内部网络设备之间的通信。私网IP地址的范围是由国际互联网标准组织(IETF)定义的,专门保留给局域网使用。

私网IP的地址范围

根据RFC 1918标准,私网IP地址分为以下几个范围:

  • Class A:10.0.0.0 – 10.255.255.255
  • Class B:172.16.0.0 – 172.31.255.255
  • Class C:192.168.0.0 – 192.168.255.255

    这些私网IP地址不会在互联网上路由,它们只在局域网内部有效。

私网IP的特点

  • 不可直接访问互联网:私网IP地址不具有全球唯一性,因此不能直接访问公网。
  • 共享性:私网IP地址可以在多个不同的局域网中重复使用。
  • 节省公网IP资源:私网IP的使用能够大大减少对公网IP地址的需求。

私网IP的用途

  • 局域网通信:家庭网络、企业内部网络等通常使用私网IP进行设备间的通信。
  • 局域网内服务器:如打印机、文件服务器等设备通常使用私网IP地址。

NAT(网络地址转换)

NAT的定义

  NAT(Network Address Translation,网络地址转换)是一种技术,用于将私网IP地址转换为公网IP地址,反之亦然。NAT技术的主要作用是解决公网IP地址匮乏的问题,使得多个私网IP设备能够共享一个公网IP访问互联网。

NAT的工作原理

  NAT通常部署在路由器或网关上,当局域网中的设备需要访问互联网时,路由器会将设备的私网IP地址转换为公网IP地址。这种转换可以是一对一或多对一的方式。最常见的NAT形式是源地址转换(SNAT),即将内网设备的私网IP转换为公网IP。

NAT的类型

  • 静态NAT:静态NAT将一个私网IP地址映射到一个固定的公网IP地址。这种方式通常用于需要外部访问的服务器,如Web服务器、邮件服务器等。
  • 动态NAT:动态NAT将私网IP地址映射到一组公网IP地址中的一个。在访问请求时,动态NAT会随机选择一个公网IP进行映射。这种方式更为常见,适用于内网设备频繁访问互联网的场景。
  • 端口地址转换(PAT,Port Address Translation):PAT是NAT的一种形式,它将多个私网IP地址映射到同一个公网IP地址的不同端口上。通过这种方式,多个设备可以共享同一个公网IP地址,利用不同的端口进行区分。PAT常常用于家庭或小型企业网络。

NAT的优势

  • 节省公网IP资源:由于多个设备可以共享一个公网IP,NAT能够大幅度减少公网IP地址的需求。
  • 安全性提升:NAT可以隐藏内网设备的私网IP地址,外部网络无法直接访问内网设备,提供了一定程度的安全防护。

NAT的缺点

  • 访问限制:NAT可能导致某些应用(如VoIP、P2P等)无法正常工作,因为它改变了IP地址和端口号,可能会破坏应用程序的通信。
  • 性能开销:NAT需要实时转换IP地址和端口,可能会增加网络设备的处理负担,影响网络性能。

NAT与私网IP的关系

  NAT技术是实现私网IP地址与公网IP地址之间互通的桥梁。私网IP通常用来进行内部通信,而NAT则在网络边界提供了与公网的连接。由于公网IP的稀缺,NAT成为了连接大规模局域网和互联网的核心技术之一。

常见的NAT类型

SNAT

SNAT的定义

  SNAT(Source Network Address Translation)源地址转换是NAT的一种技术,用于修改数据包的源IP地址。SNAT通常用于局域网中的设备访问外部网络(如互联网)时,通过将其私网IP转换为公网IP来实现通信。

SNAT的工作原理

  当局域网中的设备发起一个到外部网络(例如互联网)的请求时,路由器或网关会将设备的源IP地址(即私网IP地址)转换为公网IP地址。返回数据包时,路由器会将目的IP地址转换回相应的私网IP地址,确保数据能够准确返回到源设备。

SNAT的示例

  假设有一个局域网内的设备使用私网IP地址192.168.1.10发起访问请求。该设备访问外部服务器时,路由器将其源IP地址192.168.1.10转换为公网IP地址203.0.113.5。

  • 请求时:私网设备192.168.1.10 -> 公网服务器 (通过路由器 SNAT 转换为公网IP 203.0.113.5)。
  • 返回时:公网服务器 -> 路由器(公网IP 203.0.113.5) -> 内网设备 192.168.1.10(通过SNAT还原)。

SNAT的应用场景

  • 家庭或小型企业网络:多个设备共享一个公网IP访问互联网。
  • 负载均衡:多个内部服务器共享单个公网IP进行外部访问。

DNAT

DNAT的定义

  DNAT(Destination Network Address Translation)目的地址转换是NAT的一种技术,用于修改数据包的目的IP地址。与SNAT相反,DNAT在外部设备(如互联网)访问内部网络时,将目标IP地址从公网IP地址转换为私网IP地址。

DNAT的工作原理

  当外部设备向公网IP地址发送请求时,路由器会根据NAT规则将目标地址(公网IP)转换为局域网设备的私网IP地址。这种方式使得外部设备能够访问内网中的服务(如Web服务器、FTP服务器等)。

DNAT的示例

  假设外部设备需要访问局域网内的Web服务器,该服务器的私网IP地址为192.168.1.20,路由器的公网IP地址为203.0.113.5。当外部设备向203.0.113.5发送HTTP请求时,路由器将请求的目标地址转换为192.168.1.20,并将数据包转发到Web服务器。

  • 请求时:外部设备 -> 路由器公网IP 203.0.113.5(路由器进行DNAT转换,将请求转发至192.168.1.20)。
  • 返回时:Web服务器 192.168.1.20 -> 路由器(NAT转换) -> 外部设备。

DNAT的应用场景

  • 远程访问:将外部访问请求转发到内网的Web服务器或其他服务。
  • 防火墙:使内网中的特定设备可以公开服务而不直接暴露其私网IP。

FNAT

FNAT的定义

  FNAT(Full Network Address Translation)全网络地址转换是一种NAT技术,通常,FNAT=SNAT+DNAT。

结论

  理解公网IP、私网IP和NAT转换是学习计算机网络的基础。公网IP作为设备在互联网上的唯一标识,私网IP为内部网络提供了通信空间,而NAT技术则通过将多个私网IP映射到少量公网IP,帮助我们实现资源共享和安全访问。随着网络环境的不断变化,NAT技术也在不断发展,提供更灵活和安全的解决方案。

相关文章:

计算机网络 | 什么是公网、私网、NAT?

关注:CodingTechWork 引言 计算机网络是现代信息社会的基石,而网络通信的顺畅性和安全性依赖于有效的IP地址管理和网络转换机制。在网络中,IP地址起到了标识设备和进行数据传输的核心作用。本文将详细讨论公网IP、私网IP以及NAT转换等网络技…...

如何解决Outlook无法连接到服务器的问题

Microsoft Outlook 是一款广泛使用的电子邮件客户端,它能够帮助用户高效地管理邮箱、日历和任务。然而,尽管其功能强大,用户有时会遇到“Outlook无法连接到服务器”的问题。这种问题通常会让用户无法接收或发送电子邮件,甚至可能导…...

vue2 web 多标签输入框 elinput是否当前焦点

又来分享一点点工作积累及解决方案 产品中需要用户输入一些文字后按下回车键生成标签来显示在页面上&#xff0c;经过尝试与改造完成如下&#xff1a; <template><div class"tags-view" click"beginInput"><el-tag :key"index" …...

32单片机综合应用案例——物联网(IoT)环境监测站(四)(内附详细代码讲解!!!)

无论你身处何种困境&#xff0c;都要坚持下去&#xff0c;因为勇气和毅力是成功的基石。不要害怕失败&#xff0c;因为失败并不代表终结&#xff0c;而是为了成长和进步。相信自己的能力&#xff0c;相信自己的潜力&#xff0c;相信自己可以克服一切困难。成功需要付出努力和坚…...

LabVIEW与WPS文件格式的兼容性

LabVIEW 本身并不原生支持将文件直接保存为 WPS 格式&#xff08;如 WPS 文档或表格&#xff09;。然而&#xff0c;可以通过几种间接的方式实现这一目标&#xff0c;确保您能将 LabVIEW 中的数据或报告转换为 WPS 可兼容的格式。以下是几种常见的解决方案&#xff1a; ​ 导出…...

小结: 路由协议的演进和分类

路由协议的演进和分类&#xff0c;包括其发展历史及主要应用场景。路由协议用于在网络中确定数据传输的最佳路径&#xff0c;主要分为内部网关协议&#xff08;IGP&#xff09;和外部网关协议&#xff08;EGP&#xff09; AS-AS 之间的。 路由协议的演进 1982年&#xff1a;出…...

OpenCV相机标定与3D重建(60)用于立体校正的函数stereoRectify()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 为已校准的立体相机的每个头计算校正变换。 cv::stereoRectify 是 OpenCV 中用于立体校正的函数&#xff0c;它基于已知的相机参数和相对位置&am…...

Android wifi列表中去自身的热点

Android wifi列表中去自身的热点 一、前言 Android wifi列表中能搜索到自身的热点wifi&#xff1f; 正常手机上都不会出现这个问题&#xff1b;可能是系统底层已经做了过滤处理。 现实开发中Android设备的Wifi能搜索到自身热点也可能会存在。 比如基于两个单独的wifi双模组硬…...

Windows环境本地配置pyspark环境详细教程

目录 一、背景简记二、本地单机spark环境配置详细步骤第一步&#xff1a;python环境安装第二步&#xff1a;安装jdk及配置环境变量安装包下载安装环境变量配置 第三步&#xff1a;安装Spark安装包下载安装配置环境变量 第四步&#xff1a;安装hadoop安装包下载安装配置环境变量…...

《自动驾驶与机器人中的SLAM技术》ch9:自动驾驶车辆的离线地图构建

目录 1 点云建图的流程 2 前端实现 2.1 前端流程 2.2 前端结果 3 后端位姿图优化与异常值剔除 3.1 两阶段优化流程 3.2 优化结果 ① 第一阶段优化结果 ② 第二阶段优化结果 4 回环检测 4.1 回环检测流程 ① 遍历第一阶段优化轨迹中的关键帧。 ② 并发计算候选回环对…...

IP属地会随着人的移动而改变吗

在当今数字化时代&#xff0c;互联网已成为人们生活中不可或缺的一部分。无论是社交媒体的日常互动&#xff0c;还是在线购物、远程工作&#xff0c;IP地址作为网络身份的重要标识&#xff0c;扮演着举足轻重的角色。随着移动互联网技术的飞速发展&#xff0c;人们越来越多地在…...

openharmony应用开发快速入门

开发准备 本文档适用于OpenHarmony应用开发的初学者。通过构建一个简单的具有页面跳转/返回功能的应用&#xff08;如下图所示&#xff09;&#xff0c;快速了解工程目录的主要文件&#xff0c;熟悉OpenHarmony应用开发流程。 在开始之前&#xff0c;您需要了解有关OpenHarmon…...

USB3020任意波形发生器4路16位同步模拟量输出卡1MS/s频率 阿尔泰科技

信息社会的发展&#xff0c;在很大程度上取决于信息与信号处理技术的先进性。数字信号处理技术的出现改变了信息 与信号处理技术的整个面貌&#xff0c;而数据采集作为数字信号处理的必不可少的前期工作在整个数字系统中起到关键 性、乃至决定性的作用&#xff0c;其应用已经深…...

云消息队列 Kafka 版 V3 系列荣获信通院“云原生技术创新标杆案例”

2024 年 12 月 24 日&#xff0c;由中国信息通信研究院&#xff08;以下简称“中国信通院”&#xff09;主办的“2025 中国信通院深度观察报告会&#xff1a;算力互联网分论坛”&#xff0c;在北京隆重召开。本次论坛以“算力互联网 新质生产力”为主题&#xff0c;全面展示中国…...

linux下的NFS和FTP部署

目录 NFS应用场景架构通信原理部署权限认证Kerberos5其他认证方式 命令serverclient查看测试系统重启后自动挂载 NFS 共享 高可用实现 FTP对比一些ftp服务器1. **vsftpd (Very Secure FTP Daemon)**2. **ProFTPD (Professional FTP Daemon)**3. **Pure-FTPd**4. **WU-FTPD (Was…...

JS Clipboard API

1.作用 在web应用程序中&#xff0c;当用户授予了相应的权限&#xff0c;Clipboard API 就能实现系统剪切板的复制、粘贴和剪切功能。系统剪切板暴露在Navigator.clipboard 中。 2.例子 window.onload () > {// 监听用户的复制事件document.addEventListener(copy, (e) …...

MySQL中大量数据优化方案

文章目录 1 大量数据优化1.1 引言1.2 评估表数据体量1.2.1 表容量1.2.2 磁盘空间1.2.3 实例容量 1.3 出现问题的原因1.4 解决问题1.4.1 数据表分区1.4.1.1 简介1.4.1.2 分区限制和执行计划1.4.1.3 分区表的索引1.4.1.4 为什么分区键必须是主键的一部分1.4.1.5 操作分区1.4.1.5.…...

重拾Python学习,先从把python删除开始。。。

自己折腾就是不行啊&#xff0c;屡战屡败&#xff0c;最近终于找到前辈教我 第一步 删除Python 先把前阵子折腾的WSL和VScode删掉。还是得用spyder&#xff0c;跟matlab最像&#xff0c;也最容易入手。 从VScode上搞python&#xff0c;最后安装到appdata上&#xff0c;安装插…...

centos 安全配置基线

centos 安全配置基线 一、系统防火墙及SE系统1. 系统自带防火墙iptables&#xff08;Centos6&#xff09;基础命令查看防火墙设置使用命令查看防火墙设置使用命令清除防火墙设置防火墙策略开放指定的端口屏蔽IP 2. 系统自带防火墙firewalled&#xff08;Centos7&#xff09;基础…...

高级编程语言的基本语法在CPU的眼中是什么样的呢?

任何一门高级编程语言&#xff0c;就一定存在下面这几个语法元素 变量类型数组控制语句&#xff08;条件&#xff0c;循环&#xff09;运算符&#xff08;算术运算&#xff0c;布尔运算&#xff0c;赋值运算&#xff0c;关系运算&#xff0c;位运算&#xff09;函数 而本节探…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...