好玩又有趣的网络 篇十八:少年,不要急,马上就要到关键点了哦!——内网穿透的基础篇2.0(内网穿透的基本原理)
导言
在上一篇文章中,和各伴值友一起简单的讨论了内网、外网、公网、私网的概念,分享了当下典型的宽带结构,为后面的操作奠定了基础,也更能理解网络上数据的传输过程。
内网穿透,其实就是让处于内网(私网)中的设备直接或者间接的方式暴露在公网(外网)上,并让其它接入下联网的设备能够连接上。而每个人的上网环境是不一样的,所以选择内网穿透的方式也不一样。我们可以根据不同的上网环境选择对应的内网穿透方式,尽量简单高效。
正文
我们把网络环境简单的分为能获取公网IP和不能获取公网IP两种情况吧。
能获取公网IP(IPv4)
在古早时候,早到什么时候呢?大概还在用win95、win98的时候吧,那个时候虽然网速慢,但基本上都是会给公网IP的,那个时候的网络结构很简单,一根电话线,一个猫(调制解调器),一台电脑,然后就没了。那个时候没有wifi还没有普及,也基本不用路由器,手机都还是黑白屏。唯一的上网设备就是电脑。
这个时候的猫没有集成路由功能,也没有地址转换功能(NAT功能),只有简单的调制和解调制功能,也就是把电话线上传输的模拟信号转换成数字信号传输给电脑,把电脑产生的数字信号转换成模拟信号传输出去,电脑负责拨号。所以,在这种网络环境下,电脑获取的是公网IP,互联网上的其它设备可以直接通过这个公网IP访问它。在这种情况下,根本不需要内网穿透。
如果这台电脑获取的是静态公网IP(以前还是有可能的),也就是获取的公网IP是不变固定的,那么就可以什么都不用做,直接用这台电脑的IP加端口号访问相应的服务。在现在看来,这种上网方式是最不安全的,把整台电脑完整的暴露在互联网上,以当时win95/98/xp孱弱的防护能力,支持不了多久就会变成“肉鸡”。
如果这台电脑获取的是动态公网IP(现在如果还能分配到公网IP的话就是这种),也就是获取的公网IP是不断变化的,也可以什么都不用做,直接用这台电脑的IP加端口号访问相应的服务 。但是,因为IP是会变化,这样的话,每次访问都要确认一下当前的IP,太麻烦了。这个时候就需要用到DDNS技术了。
先了解一下什么是DDNS。DDNS的全称是Dynamic Domain Name Server,中文名称是动态域名服务,具体的运行过程是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。
怎么理解呢?举个例子:在电脑上安装DDNS客户端,DDNS客户端会监测电脑的公网IP(假设公网ip是110.87.12.26),并把电脑的公网IP发送到DDNS服务商提供的服务端(比如阿里、腾讯这些服务商),DDNS服务端会把接收到的公网ip110.87.12.26和你在DDNS服务端填写的域名(个人申请的网址,比如你申请了一个xxx.xx.com的网址)对应起来,也就是说公网ip(110.87.12.26)=域名(xxx.xx.com)。如果电脑的公网ip发生改变,比如公网ip是变成了114.80.12.36,电脑上的DDNS客户端就会把新的公网IP发送到DDNS服务端,DDNS服务端会重新把公网ip(114.80.12.36)=域名(xxx.xx.com)对应起来。这样的话,只需要输入域名+端口号就能访问到这台电脑上的服务了,不用担心公网ip会变化了,因为域名是不变的。
动态公网IP+路由器
随着上网设备的增多,wifi和智能手机在国内的普及,人们的需求也增加了,不再满足家里只有一台电脑上网了。家里有很多设备要连接网络,总不可能给每个设备都拉一条网线吧?于是,路由器就出现了。随着路由器的加入,网络环境也变得复杂起来。
路由器有一个重要的功能,那就是网络地址转换(NAT:Network Address Translation)。这个功能可以让路由器下的多个设备共享一个IP地址连接并使用网络,记得好像有一段时间运营商还禁止家庭使用路由器。NAT功能除了共享宽带外还有安全防护的作用。路由器把所有的设备都都隔离在内(私)网里,互联网上的设备没有办法直接访问到路由器下的设备。
所以,这个时候即使你有公网IP,互联网上的设备依然没有办法直接访问你的设备。这个时候你就需要进行内网穿透了,穿透路由器NAT。
如果你的公网IP是固定的,也就是静态IP,这个时候只需要在路由器上进行端口映射就行了。
端口映射过程就如同:你的朋友来找你,找到小区门口,不知道你住在几栋几单元几层几室,然后问保安,保安查到你的名字然后告诉你在几栋几单元几层几室,所以你的朋友很轻松的找到了你的家,在这个过程中,保安通过业主的名字查到业主的具体门牌号这就是一种映射关系。
简单的理解映射过程:公网IP+端口>>>>>内网设备的IP+端口
例如路由器获取的固定公网ip为 114.80.12.36,内网的NAS地址是192.168.31.45,端口号是5000。然后在路由器 上添加一条映射:外网访问的端口:5000>>>>>192.168.31.45,内网访问的端口:5000。这样就可以在互联网上的其它设备上的浏览器中输入114.80.12.36:5000就能访问到内网的NAS了。
当然除了这种方式外,你也可以把内网的设备设置为DMZ主机。但是设置为DMZ后会把你的所有端口暴露在外网(公网)里,很不安全,不建议使用。
如果你的公网IP是动态变化的,这个时候需要先在路由器上设置DDNS,把路由器获取的公网IP解析到一个域名上,然后再设置端口映射就行了。
比如:路由器上设置DDNS的解析域名是xxx.xx.com,内网的NAS地址是192.168.31.45,端口号是5000。然后在路由器 上添加一条映射:外网访问的端口:5000>>>>>192.168.31.45,内网访问的端口:5000。这样就可以在互联网上的其它设备上的浏览器中输入xxx.xx.com:5000就能访问到内网的NAS了。
所以,在有公网IP的情况下,建议用端口映射或者DDNS+端口映射的方式进行内网穿透,这样能充分利用你的宽带。访问速度取决于你的上行宽带,你的上行宽带越快,你的访问速度就越快。
总结
现在的宽带获取公网IP是越来越困难了,如果你有一条有公网IP的宽带的话,请好好珍惜。下篇文章来说一下没有公网IP的情况进行内网穿透的基本原理。
本文收录在值得买 「优质内容激励计划·每周精选」,点击了解计划详情>>>
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
sagawa
校验提示文案
值友1724886517
校验提示文案
宋世江山
校验提示文案
齐地大尾
校验提示文案
kkkellerman
校验提示文案
小白在路上
校验提示文案
小白在路上
校验提示文案
kkkellerman
校验提示文案
齐地大尾
校验提示文案
sagawa
校验提示文案
宋世江山
校验提示文案
值友1724886517
校验提示文案