【1】什么是内网穿透?
首先,我们生活中的网络从应用上可以分为内网和外网;
内网就是你自己的网络环境,就你自己能访问,比如你本地测试进行的localhost;
外网就不言而喻了,你看网页,视频等这些网址都是外网。
那么什么又是内网穿透呢?简单的说就是通过访问一个外网地址,然后穿透到你的内网地址。
【2】内网穿透有什么用?
【情景1】
假设你写了一个代码功能,本地测试已经OK,此时,你要想让千里之外的朋友帮你测试,会怎么做呢?
A方案:如果你的朋友懂代码,你可以把代码打包发给他,让他在本地测试;
B方案:如果你的朋友不懂代码,你只能搭建一套服务器,然后放到服务器上面,让他通过外网访问进行测试;
不论是A方案还是B方案,整个过程复杂繁琐。特别是B方案,如果不会服务器部署那套,那直接白搭。
此时,ngrok 就可以派上用场了,只需要打开输入一个命令,就可以让你千里之外的朋友测试了,整个操作耗时5秒不到。
【情景2】
我们有时在对接各种授权的时候,比如微信授权,微信那边会要一个带有https的备案域名进行回调,如果你都还未申请这些东西,或者还正在申请(域名备案往往需要半个月左右),那么现在的你只能干等,以至于代码都不能写或测试。
此时,ngrok 同样可以大显身手,你可以在这个过程中,用 ngrok 给你的域名,配置到微信回调地址上,这样就不影响正常开发了。
【3】实战练习
说了这么多概念篇幅,就是为了让你明白他的概念和用途,接下来我们写个实战例子,看看 ngrok 到底该怎么用?
(1)随便创建一个 springboot 项目,然后在 Controller 中随便写一个请求的返回。
(2)启动项目,本地进行访问测试。
(3)下载 ngrok,然后双击打开。
下载链接:https://pan.baidu.com/s/1SafO2stm6RbgPVugOKBt0g ( 提取码:fvm4 )
然后输入命令:ngrok http 8080 (8080为你的程序访问端口)
(4)然后我们就可以看到如下界面,现在我们拷贝那个https的网址。
(5)然后拼上你的方法路径,进行访问,可以看到这个带https的域名也能够访问到你的程序。这样的话,你不但自己可以测试,还可以把这个公网地址发给你让千里之外的朋友,让他帮你测试。
(6)并且每访问一次,刚刚的那个窗口还会帮你记录你的访问历史。