内网穿透原理及前端使用场景
要想了解某个复杂的学术概念,我们可以先搞清楚它能解决什么问题,内网穿透到底是干什么的?举个例子,我们家用电脑一般都是通过有线或者无线的方式连接在路由器上的,而路由器本身开机设置后就会有一个wifi,你的电脑或者手机都是可以连接wifi的。如果路由器没有接入网络供应商的线路,也就是大家常说的网线。那么我们的机器是不能访问公网上的内容,并且外部的电脑也是无法传递信息给我们家用电脑上的。所以,我们家用电脑能够访问外网是因为路由器在我们家用内网环境和外网环境之前数据传输时做了地址转换,这其中用到的技术叫“NAT穿透”也就是我们说的内网穿透。 那么内网穿透的原理是什么?假设我们将小区比作一个大型局域网,你所在单元楼房号就是你的ip地址。现在你需要寄一个快递到隔壁小区你叔叔家,那么你填写的地址应该是xx省xx市xx区xx街道xx小区,这个地址适用于全国任何一个地方的收获地址。你的单元楼房号是针对你小区命名的,其他小区同样也可能有跟你重名的。我们把这种对内命名的称为内网ip,而你寄快递填写的地址在全国范围内只可能存在一个,能够准确描述,我们将这种命令称为公网ip(IPV4)。要知道IPV4的总个数是2^32,这个数目是相对于全球上网总数来说是稀缺资源,不可能让所有设备都在主干道上标志自己的且是不重复的唯一IP,所以NAT做的事情就是把一个区域内的所有设备连在一起并统一和主干道上其他区域设备联系,对外只共用一个公网IP来标志自己,对内则分配一些够用的私有地址。 内网穿透具体做了什么事情?我们拿平时上网举例,当我们电脑接入内网后(这里称我们电脑为主机A),路由器会分配给主机A一个内网ip(192.168.1.1)端口为80。此时,主机A想访问公网上的服务器B公网ip为(64.32.32.32)端口为33,路由器在互联网上的公网ip为(22.22.22.22),当主机A需要访问服务器B时,路由器会将主机A的ip映射为22.22.22.22端口100,通过(22.22.22.22:100)来访问服务器B,因为两者均处于公网环境中,访问时不成问题的。如果路由器这里没有做限制的话,任何公网访问(22.22.22.22:100)这个端口都会被主机A接受,这就是NAT的完全锥形。另外还有ip限制型锥形、端口限制型锥形和对称性NAT,其原型类似只是限制条件不同这里就不再赘述。 对于前端而言,我们在开发工程中尤其公总号的开发,通常需要配置一个前台服务的域名在微信后台,域名需要跟公网ip做绑定。所以我们通常会将本地服务通过内网穿透的方式映射到公网上,相关文档网上技术文档有很多,可以自己去查。
页:
[1]