想要了解内网穿透可能需要一些计算机网络的知识。特别是OSI七层网络参考模型,对理解内网穿透特别有用。可能字看起来有点多,。。。。认真看吧,不复杂。
内网穿透介绍
内网穿透是一种通过互联网连接私有网络(内网)中的设备或服务的技术。它允许公网上的设备能够访问内网中的设备,实现跨网络的连接和通信,传统中私有网络中的设备(比如个人电脑)使用的是私有ip地址,这些地址在公网中无法直接访问。内网穿透即是为了实现将公网中的请求转发到内网中的目标设备,使私有网络中的设备能够被公网访问。
使用到内网穿透的例子
首先我举一个用到内网穿透的例子,当我们的小项目需要连接支付宝做支付接口的时候,我们的项目只需要做到连接到支付宝,具体在支付宝内部的钱额加减,只需要将加减的数量通过接口传递给支付宝官方就可以了,那么客户端在进入到我们设置的支付宝接口时候,当它走到了我们设置好的支付宝接口中时可以通过前端返回值得知,
但是当客户从支付宝接口中出来的时候有没有付款成功呢?付款的内部操作都是支付宝官方在做,那么此时我们就需要从支付宝官方询问,毕竟官方不会骗人,但是此时如果我们只是一个小项目,项目还没有部署到服务器,也就是说,现在项目是在局域网(内网当中),此时支付宝官方服务器是在公网中的,支付宝想要告诉我们客户有没有付款成功,却发现它没有办法访问内网中的设备,所以此时需要内网穿透,来达到我们的设备能够暴露在公网当中,这样子支付宝才能成功告诉我们有没有付款成功的信息,我们只有得到了付款是否成功的消息才可以给客户端传递下一步的页面。
而支付宝给我们的小项目传递信息怎么理解:如果我们的项目运行在自己电脑的8080端口,相当于告诉支付宝让支付宝给http://localhost:8080/xx/xx的地址发送信息,此时我们的内网穿透意义就是让http://localhost:8080/xx/xx能够让支付宝给搜索到,并且能够传递成功信息。
我在这里分享一个实现内网穿透的方法NATAPP,此技术是端口映射(Port Forwarding).在端口映射中,路由器会将公网上特定端口的请求转发到内网设备的对应端口上。这样,公网上的设备就可以通过访问路由器的公网IP地址和映射的端口,与内网设备进行通信。
设置好的样例
设置好了就可以像下面图片一样,公网中只要访问 http://9stpm7.natappfree.cc就等于是访问192.168.21.24:8080 而 192.168.21.24是本地设备的ipv4地址,所以就相当于是访问http://localhost:8080,也就是实现了把私有网络中的设备暴露到了公网当中。此时把http://9stpm7.natappfree.cc传递给支付宝,让支付宝把结果返回到这个接口中,此时在个人私有设备上监听一下本地的8080端口,就能够实时接收公网传来的信息了。
下面是设置内网穿透的从操作。
1进入natapp中然后注册账号登录不用教NATAPP-内网穿透 基于ngrok的国内高速内网映射工具
登录之后首页点击登录进入新页面
之后就点击购买隧道以及免费隧道
之后就免费购买,本地端口根据情况设置(看你准备监听哪个端口了)隧道协议一般就选Web
NATAPP-内网穿透 基于ngrok的国内高速内网映射工具之后去这个连接下载符合本地计算机配置的natapp.exeNATAPP-内网穿透 基于ngrok的国内高速内网映射工具
下载好之后就直接解压里面就只有一个natapp.exe,通过cmd黑窗口走到natapp.exe的那一层
此时有两步,第一步是去配置中将本地地址改成自己电脑的ipv4地址,设备的ipv4地址可以在黑窗口中输入ipconfig就可以得到自己设备的ipv4地址了
- 如果使用有线网络连接,找到以太网适配器(Ethernet Adapter)或本地连接(Local Area Connection)相关的部分。
- 如果使用无线网络连接,找到无线局域网适配器(Wireless LAN Adapter)或Wi-Fi适配器(Wi-Fi Adapter)相关的部分。
第二步是去我的隧道的地方吧authtoken给复制下来等下要用
第三步就是去natapp的那一层的黑窗口中运行下面这一步之后就会成功内网穿透了 (记得把a23bbf0787264d40改成你自己的隧道中的authtoken才行。)
natapp -authtoken=a23bbf0787264d40