Ngrok内网穿透
内网穿透是什么?
以公司网络为例子,公司内部网络为是一个局域网,对外有共同的一个公网IP,假如现在局域网内一共有100台机子,我们通过公网去访问某一台的本地站点,这个就是内网穿透。
内网穿透有什么用?
假如现在你写好了一个项目,但是没有测试服给你部署,你又想提供给前端或者客户端去对接接口,那就可以通过内网穿透直接给他们提供服务,他们可以直接通过域名(公网)去调用,会方便很多。
内网穿透的基础原理
基础可以借鉴这篇博客
我总结了一下,重点是这一块
NAT(Network Address Translation)即网络地址转换,NAT能将其本地地址转换成全球IP地址。
1.首先我们本地的服务运行在局域网IP的某个端口下,然后在网络入口的交换机处(公网IP)开启一个端口进行代理
举例说明:
假如现在公网IP为121.103.117.204,局域网内有一百台机子,有一个内网IP是192.168.106.223。
首先这台机子运行了一个项目在9930端口(192.168.106.223:9930),通过内网穿透(借助第三方工具),
在公网IP处开了一个端口进行了代理,这里假设是1186端口,
即关联关系为:121.103.117.204:1186 <=> 192.168.106.223:9930
只要任何人调用这个公网IP加1186端口即可调用内网机子提供的服务。
2.我们一般借助工具去完成第一步的操作,但是为了避免公网IP开放的端口暴露,工具会给我们提供一个临时的域名,然后我们通过这个域名就可以直接访问我们的内网服务,原理是临时的域名指向到第三方自己的云服务器中,然后云服务器进行代理我们公网的IP加端口。
举例说明
假如第三方提供给我们的域名是:http://ftss.fxxs.com
该域名的DNS解析为:106.72.33.55(第三方云服务器)
第三方云服务器代理了我们的公网IP加端口,即:106.72.33.55:80 <=> 121.103.117.204:1186
当我们访问该域名时,就可以直接访问内网服务了
内网穿透的实战(第三方工具以NATAPP为例)
1、首先下载安装好,下载安装教程可以参考这里,记得先购买隧道,才能进行测试,隧道有免费的。
2、将本地的服务运行起来,以我的机子为例,采用PHP的内置服务器进行启动服务
3、查看我本机的内网IP,配置隧道
4、在本地启动NATAPP服务,开启内网穿透及第三方代理
启动方式:
natapp -authtoken=xxx
启动完成后如图:
复制域名到浏览器访问
已经能成功访问到我本地的项目了,整个过程大概就是这样