内网和外网之间的通信(端口映射原理)

article/2025/8/26 9:11:01

内网和外网之间的通信(端口映射原理)

    首先解释一下“内网”与“外网”的概念:

    内网:即所说的局域网,比如学校的局域网,局域网内每台计算机的IP地址在本局域网内具有互异性,是不可重复的。但两个局域网内的内网IP可以有相同的。

    外网:即互联网,局域网通过一台服务器或是一个路由器对外连接的网络,这个IP地址是惟一的。也就是说内网里所有的计算机都是连接到这一个外网IP上,通过这一个外网IP对外进行交换数据的。也就是说,一个局域网里所有电脑的内网IP是互不相同的,但共用一个外网IP。(用ipconfig/all查到的IP是你本机的内网IP;在www.ip138.com上看到的是你连接互联网所使用的IP,即外网)。

 

    在局域网中,每台电脑都可以自己分配自己的IP,这个IP只在局域网中有效。而如果你将电脑连接到互联网,你的网络提供商(ISP)的服务器会为你分配一个IP地址,这个IP地址才是你在外网的IP。两个IP同时存在,一个对内,一个对外。

 

    当你家里买了两台电脑,你想组建一个局域网,你除了要用网线和路由器等设备将两台电脑相连,你还要将两台电脑设置固定IP,比如电脑A设为192.168.1.2,电脑B设为192.168.1.3,这样你就可以用这两个IP地址互相访问两台电脑,但这两个IP地址只在这两台电脑间有效,对外网无效。所以局域网中分配的IP与广域网中的IP完全没有对应关系。

    你在内网的机子在上网时,都是在向网关发出请求,再由网关(一般为路由器)用外网IP转到INT网上,接受数据后,再分发到你的内网IP上。

 

    再者,我们大多人都是使用宽带上网,结果发现,A 和 B 的局域网 IP 都是192.168.31.11,当他们都访问百度浏览网页时,百度服务器回复数据时,如何区分是给 A 还是给 B 呢?

  

公有 IP 和私有 IP 的区别

  首先,我们需要了解一下什么是公有 IP 和私有 IP ?

  公有地址(Public address):由 Inter NIC(Internet Network Information Center 因特网信息中心)负责。这些 IP 地址分配给注册并向Inter NIC提出申请的组织机构,公有 IP 全球唯一,通过它直接访问因特网(直接能上网)。

  私有地址(Private address):属于非注册地址,专门为组织机构内部使用,说白了,私有 IP 不能直接上网。

  而我们平时通过运营商(电信、移动、联通宽带等)上网,家里面通过路由器分出来的 IP 都是私有 IP(局域网 IP),大家可能会疑问,我们可以上网啊,怎么会是私有 IP 呢?租用(申请)公有 IP 是需要钱的。 运营商买了一些公有 IP,然后通过这些公有 IP 分出来,再分给一个一个的用户使用。这个过程有点类似于,我们去安装了宽度,通过路由器分出几个 IP,让好几个人都能上网,当然运营商通过公有 IP 分出来的过程肯定比这个复杂多了。所以,我们平时上网用的 IP 是私有 IP,真正拥有公有 IP 的是运营商(当然,我们可以租用一个公有 IP )。所以,A 家庭的局域网 IP 和 B 家庭的局域网 IP 相同很正常,但是,最终 A 和 B 能上网(数据走出去)还是通过运营商的公有 IP,毕竟,公有 IP 的资源有限,这一片区域的用户使用的很有可能(实际上就是这样的)是同一个公有 IP,这样的话,又回到前面的问题,假如 A 和 B 的局域网 IP 相同(192.168.31.11),当他们同时访问百度服务器的时候,百度服务器如何区分哪个是 A,哪个是 B 呢?

  

端口映射

  接下来,给大家介绍一下什么是端口映射?

  端口映射是 NAT 的一种,它将外网主机的 IP 地址的一个端口映射到内网中一台机器,提供相应的服务。当用户访问该 IP 的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。

  现在市场上的家庭路由器都具备 NAT 功能,也可以实现端口映射。下图为小米路由器的端口映射设置图:

  

  我们平时经过路由器,通过宽带,最终去到运营商那边,数据是从运营商出去,最终数据是回到运营商那边,运营商再把数据发送到用户的电脑。

  路由器,至少有两个端口:WAN 口和 LAN 口。

  WAN:接外部 IP 地址用,通常指的是出口,转发来自内部 LAN 接口的 IP 数据包,这个口的 IP 是唯一的。

  LAN:接内部 IP 地址用,LAN 内部是交换机。

  这里,我们简化这个过程,我们把运营商当做一个 NAT 设备。

  

  为了方便大家理解,我们把 IP 的转化方向反过来分析(准确来说,公网转局域网)。

  A 电脑的 IP 是局域网 IP(192.168.31.11),这个 IP(192.168.31.11)是从路由器的 lan口分配的。

  当我们上百度的时候,经过路由器的 wan口,进行相应的IP、端口转化:192.168.31.11:80 -> 10.221.0.24:8080,所以,从 wan口出去的地址为:10.221.0.24:8080。

  

  最后,经过运营商,运营商那边会做相应的端口映射(而且是动态端口映射),子网 IP(10.221.0.24:8080)转化为公网 IP(128.0.0.1:8888),通过这个公网 IP 去访问百度服务器。

  

  同理,B 的过程也是一样。通过这样的层层端口映射,最终保证地址(IP + 端口)的唯一性。A 和 B 访问百度服务器,尽管它们的局域网 IP 是一样的,但是最终它们访问百度的地址(IP + 端口)是唯一的,所以,百度服务器回复时,原路返回时能够区分到底给谁回。

  如何让外网能够访问自己写的网络程序(服务器)

  首先,我们需要在运营商那边申请(租用)一个公有 IP (长城宽带一年需要 2000 元左右),假如这个公有 IP 为:128.0.0.123。

  假如,我们写的服务器如下:

  

  接着,找个 NAT 设备进行相应的端口映射,家庭路由器都有这个功能。这里以小米路由器为例:

  

  映射关系如下:

  

  最后,其他人写客户端程序时(电脑能上外网),只要指定目的 IP 地址为 128.0.0.123,端口为 8888,通过这个地址,就能找到192.168.31.248:8080,因为这两者已经建立好映射,如上图,这样,我们的服务器就能收到数据。

 

 


http://chatgpt.dhexx.cn/article/U20IpFnJ.shtml

相关文章

实现内网通过外网域名访问NAT映射的内网服务器

大家都知道在用Huawei的中低端路由器做NAT地址映射时只能支持 “外网访问” 不支持 “内网访问”。也就是说只支持NAT映射后外网IP通过外网域名(外网IP)访问NAT映射的服务器 ,不支持NAT映射后内网IP通过外网域名(外网IP&#xff0…

给内网映射增加安全防护

1.背景 内部网络资源的访问,通用的做法是部署企业VPN,通过VPN设备提供公网接入服务,客户端接入后,则可以像本地网络一样访问内网资源。但是部署VPN需要专业设备,且配置管理往往需要专业人员,对普通小…

公网映射思路

1、使用环境 目前政务微信的有两台内网环境71和14服务器,外网不能访问,只能内部访问,但是项目部署在14上面71的nginx转发到14服务器上面,但是现在14的项目需要网络支持,另外需要一台公网环境180服务器。 2、公网环境…

外网做ip映射访问内网链接

首先这个外网必须是独立ip 然后在路由器设置ip映射,注意防火墙放通该端口,可以telnet连一下试试有没通

几种内网映射到公网的方法

1、windows_386_ngork ngrok.exe用来将内网映射到外网上,即让外网能访问局域网内本地的应用,例如在外网访问你本地http://127.0.0.1指向的Web站点。下载windows_386_ngork软件,可以到官网下载,可以直接用我提供的下载地址&#x…

云服务器部署内网穿透映射本地服务

项目开发时需要和前端联调,考虑使用内网穿透避免每次上传服务部署的过程 下载frp (开源内网穿透、反向代理工具) https://github.com/fatedier/frp/releases/上传云服务器并解压(使用xftp等工具上传) tar -zxvf frp_0…

内网与外网及内网映射的概念

内网与外网及内网映射的概念 所谓内网,也就是局域网,一般是由几台电脑加上路由器和网线搭建起来,只能在局域网中通过路由器分配的IP地址来访问,且访问地址是动态的可变的。本机也算是一个相对独立的内网,本机的内网IP就…

内网如何映射到公网访问互联网

我们通常会根据本地应用场景来选择合适的中间件来搭建服务器。tomcat、 apache是比较常用的搭建服务器的中间件,它们之间还是有一些区别差异的。在内网本地部署搭建服务器后,还可以通过快解析端口映射方法,将内网应用地址发布到互联网&#x…

将内网映射到外网

如何把你的电脑映射到外网 前几天一个客户说需要把他的服务器映射到外网,然后别人可以通过远程连接来操作,远程安装使用软件,但不知道怎么做,在之前也是一头雾水的,不知所云,但经过某思虑片刻之后&#xff…

内网ip映射外网方法

内网ip映射外网方法 主要是使用花生壳app实现 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 内网ip映射外网方法一、下载软件二、使用步骤1.注册账号,添加映射 总结 一、下载软件 花生壳下载地址 …

如何实现内网映射到公网?

有些时候我们需要把自己的笔记本当做服务器连接到公网上,以便让自己的小项目能够被其他人访问或者看到。正常情况,我们台电脑上网都应该是配备了一个公网ip的。但是呢,不幸的是我们的电脑所分配到的ip都是内网ip,因此我们无法让外…

内网透传------局域网IP映射到公网

切记:重启!!!! 一下知识总的来说就是2点: 第一点:如何通过路由器公网IP映射的公网端口号---访问局域网服务器 第二点:如何通过花生壳的域名花生壳的端口号-----访问局域网服务器 …

内网映射(如何映射自己的项目至公网)

内网映射(如何映射自己的项目至公网) 1.浏览器进入https://natapp.cn/ 2.登录网页后,进行如下操作 购买成功后,操作下面~ 到这里你已经成功大半了,是不是很开心。此时需要准备如下操作 #将本文件放置于natapp同级…

内网穿透怎么设置?内网映射外网需要注意什么

自己在本地搭建服务器,由于没有公网IP或没有公网路由权限,在提供互联网连接访问时,就需要用到内网穿透。内网穿透,即内网映射,内网IP地址端口映射到外网访问的实现方法。那么,怎么做内网穿透呢,…

实现内网映射的三种方式:

实现内网映射的三种方式: 1.ngrok. 1)下载ngrok 下载地址:https://ngrok.com/download 选择合适的版本下载,我下载的是win64为的是这样: 2)解压下载下来的文件得到一个名为ngrok的应用程序 3)双击运行ngrok,输入ngrok得到命令提示(不输入打开也有) 4)输入命令:n…

大数据面试题带答案

版本更新时间更新内容v1.02020-07-01新建v1.12020-07-18朋友面试大数据工程师提供的关于架构及数仓方面的题目(智云健康)v1.22020-08-08朋友面试数据专家提供的数据驱动,spark及flink方面面试题(华为,阿里,小影,拼便宜)v1.32020-0…

2021大数据面试题

文章目录 前言一、考察SQL能力*初级*1. 表A只有一个字段ID,值为[1,2,2,3,3,3]。现要求查询出重复的id2.表A又两个字段ID和Create_Time,计算今天新增的ID表[不包含昨天的那一部分];3. 表A和表B都只有一个字段Account,如果account来…

大数据面试题(一)

一、.hdfs写文件的步骤 答案: (1)client向NameNode申请上传…/xxx.txt文件 (2)NN向client响应可以上传文件 (3)Client向NameNode申请DataNode (4)NN向Client返回DN1,DN2,DN3 (5)Client向DN1,DN2,DN3申请建立文件传输通道 (6)DN3,DN2,DN1依次响应连接 (7)Cli…

15道经典大数据面试题

自我介绍 项目介绍 数仓为什么要分层? 数据仓库都分哪几层? 简单介绍一下 Mapreduce 工作原理? Hdfs 的读数据流程了解吗? Hdfs 的写操作呢? zookeeper的选举过程 Spark 为什么比 MapReduce 快? Spark 任务执…

大数据相关面试题

linux 常见linux高级命令? top、iotopnetstatdf -hjmap -heaptarrpmps -ef shell 用过的shell工具? awk Awk 命令详解 - 简书 awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用…