Ngrok内网穿透

469 阅读3分钟

Ngrok内网穿透

内网穿透是什么?

以公司网络为例子,公司内部网络为是一个局域网,对外有共同的一个公网IP,假如现在局域网内一共有100台机子,我们通过公网去访问某一台的本地站点,这个就是内网穿透。

内网穿透有什么用?

假如现在你写好了一个项目,但是没有测试服给你部署,你又想提供给前端或者客户端去对接接口,那就可以通过内网穿透直接给他们提供服务,他们可以直接通过域名(公网)去调用,会方便很多。

内网穿透的基础原理

基础可以借鉴这篇博客

blog.csdn.net/xinpz/artic…

我总结了一下,重点是这一块

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的内置服务器进行启动服务

avatar

3、查看我本机的内网IP,配置隧道

avatar

avatar

4、在本地启动NATAPP服务,开启内网穿透及第三方代理

启动方式:

natapp -authtoken=xxx

启动完成后如图:

avatar

复制域名到浏览器访问

avatar

已经能成功访问到我本地的项目了,整个过程大概就是这样