必威体育Betway必威体育官网
当前位置:首页 > IT技术

内网访问外网以及外网访问内网的原理

时间:2019-10-04 13:15:39来源:IT技术作者:seo实验室小编阅读:90次「手机版」
 

外网访问内网

假如设A 和 B 的局域网 IP 相同(192.168.31.11),当他们同时访问百度服务器的时候,百度服务器如何区分哪个是 A,哪个是 B 呢?

解决方案端口映射

什么是端口映射?

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

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

这里写图片描述

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

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

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

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

这里写图片描述

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,因为这两者已经建立好映射,如上图,这样,我们的服务器就能收到数据。

相关阅读

访问一个网页的全过程

引言 打开浏览器,在地址栏输入URL,回车,出现网页内容。整个过程发生了什么?其中的原理是什么?以下进行整理和总结。整个过程可以概括为

访问网页,证书错误是VMware的证书的解决办法

自从装了VMware之后,每次访问google搜索都会报“您的连接不是私密连接”,网页地址https会变成红色还有一天红色的斜线,单击旁边的锁i

水星 路由器设置 本地电脑/本机 内网穿透

路由器设置 本地电脑/本机 内网穿透    各种路由器都会有设置内网穿透的方法,设置完后你可以通过外网访问你开放的端口    本

读取位置 0x00000001 时发生访问冲突

读取位置 0x00000001 时发生访问冲突char content[100]; //SYSTEMTIME st; GetLocalTime(&st); sprintf(content, "%02d%02

内网端口转发及穿透

最近尝试了一些内网端口的转发和内网穿透,现在一起总结一下。 0x01 正向和反向代理 正向代理中,proxy 和 client 同属一个 LAN,对

分享到:

栏目导航

推荐阅读

热门阅读