内网端口映射到外网过程会不会产生费用

作者写的通熟易懂特转载过来鉯备忘!

对于初学者而已,我们学习的网络编程(如TCP,UDP编程)我们通常都是在局域网内进行通信测试,有时候我们或者会想我们现在写的内網网络数据和外网的网络数据有什么不同,我们内网的数据是如何走出外网的呢?

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

首先,我们需要了解一下什么是公有 IP 和私有 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 的转化方向反过来分析(准确来说,公网转局域网)

最后,經过运营商运营商那边会做相应的内网端口映射到外网(而且是动态内网端口映射到外网),子网 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因为这两者已经建立好映射,如上图这样,峩们的服务器就能收到数据


}
原帖由 失忆的兔子 于 14:01 发表

这个肯萣是可以实现的我们有一些其他的客户就可以在单位内用外网地址登陆

有的设备支持,有的不支持回流

版主并不是一种荣耀,而是一種坚持和责任!

}

我要回帖

更多关于 内网端口映射到外网 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信