[有用] 不同局域网内进行网络连接的建立方法

时间:2024-04-12 17:15:13

在这互联网和物联网的时代,网络连接与通信被使用的越来越多,如何建立两个网络IP地址的连接 (TCP或者UDP连接),也是一门学问。之前项目中遇到了这方面的问题,也被纠缠了一番,查阅大量资料,通过不断摸索和学习,对网络通信有了一定的理解,下面以个人的理解角度,通俗的来讲讲,网络连接关系?两个局域网建立连接的解决方法?如有解释不周,望谅解。


内外网IP关系的理解

我们生活中的大多数上网的IP都是处在局域网的IP(内网IP),如192.168.X.X这些都是局域网IP,而局域网里的IP是不能直接相互连接的,只有公网的IP(外网IP)可以进行相互连接。或者也可以让内网IP直接连接到公网IP,但内网和公网之间的连接只能单向,公网无法连接到到内网IP。

打个比喻:每一个局域网(内网)相当于地球上一个一个的小屋子,而每个局域网的IP相当于小屋子里的每个人,而公网(外网)相当于天上的星星,每个公网IP相当于每一颗星星。星星是可以被每个屋子里的人看见的,因此公网IP可以被每个内网IP所连接。而星星是看不到地球上每个屋子里的每个人,因此,公网IP无法连接到内网IP。在每个屋子内,人与人之间可以相互看到,所以一个局域网内的内网IP可以进行相互的连接。但是每个屋子与屋子之间人又不能相互看到,因此内网之间的IP是隔绝的,以至于内网之间IP无法直接进行连接。同样,在天上的星星直接能相互看到对方,因此外网的IP可以随意的相互连接。


综上,可得出如下结论:

  1. 外网IP直接可以相互连接。
  2. 处在同一内网下IP可以互联
  3. 不同内网下的IP不能相互连接。
  4. 内网和外网之间,只能从内网连接到外网,外网连接不到内网。

内网连接的解决方法—-NAT穿透技术

然而,现实生活中,能使用到公网IP的并不多,我们大多都处在局域网下,如下的都是局域网IP。
A段:10.0.0.0-10.255.255.255
B段:172.16.0.0-172.31.255.255
C段:192.168.0.0-192.16.25.255
试想一下,如果每个人用的IP 都是公网的,那么这世界IP分配都不够用了,而且网络会变得很复杂。因此形成了一个一个的局域网,节省的很多IP。但产生的问题就是,每个局域网将连接变的不容易了,但并没有方法不能解决,可以通过NAT穿透技术(也称内网穿透技术)来解决,通俗讲,就是将内网的IP和端口映射到外网去,这样,其他外网的IP通过连接这映射的IP和端口,就能间接的连接上内网(有兴趣的可以去查一查其穿透原理)。同样的,因为映射到了外网,其他局域网IP也能连接到这个映射的地址,从而可以进行的两个局域网的连接。


如何穿透


NAT穿透技术有很多,读者可以去网上查,个人感觉用的比较方便的就是花生壳NAT-DDNS穿透,即通过第三方软件完成内网穿透。
自己可以网上下载一个花生壳,并注册,可以注册一个免费版的(但好像要收几块钱)。花生壳会分配给你一个域名,这个域名就是你所在公网的域名,不会改变。如下图:

[有用] 不同局域网内进行网络连接的建立方法

双击域名,进行添加你要映射的内网地址
[有用] 不同局域网内进行网络连接的建立方法

添加你所在内网的IP地址(也就是电脑设备的IP),端口可以直选,作为后面建立服务器的端口。对IP和端口进行其映射。
[有用] 不同局域网内进行网络连接的建立方法

映射完后,花生壳会分配给你一个固定域名和端口号(即你在外网地址的身份证号),此时你将处在外网状态,但他人连接你,必须通过你外网身份证号(域名和端口号)来连接你才有效。

[有用] 不同局域网内进行网络连接的建立方法


到此,就已经配置成功了,只要你登录着花生壳在线,并且开着被映射的服务器,无论其他公网和局域网的人的都能连接到你(其他方法还很多,v*n架设也是一种,但较昂贵,而且第三方软件也有其他的,读者有兴趣可以尝试)。

局域网的客户端如何连接到一个被映射到外网的服务器,我想通过下一篇文章来说明:局域网内的WIFI模块与其他局域网建立连接,顺便讲解下WIFI模块(ESP8266)的使用方法。