ngrok技术原理及下载使用
一、引言
Ngrok是一种反向代理,将本地的web服务器与服务器的建立一个安全的通道,可以根据其给定的外网地址访问本地的web服务。在他人协助调试以及用户体验评价,前后端分离方面都有着方便快捷高效的用途。在开发的过程中如果能够掌握ngrok内网穿透技术,能够让开发效率达到事半功倍的效果。
二、Ngrok原理
第一步,Client与Server首先建立起一个scoket连接,然后由Client再发送一个Auth请求,Server收到请求,验证后,返回AuthResp
第二步,Client发送ReqTunnel类似于服务器注册通道,其中包含想要申请的二级域名,Server返回NewTunnel,若Client的二级域名请求为空,服务器则会随机分配。
第三步,Server等待浏览器或则APP等访问,当产生访问请求时,Server会检查二级域名是否是已经注册,如果已经注册,则发送ReqProxy给Client。Client收到请求后创建一个新的Socket连接到Server,并发送RegProxy请求,Server收到后,返回StartProxy,并开始使用新的Socket连接做中继。[i]
三、Ngrok使用方法
- 注册用户、下载ngrok
进入https://ngrok.com/,首次进入的用户点击注册,拥有账户的直接登录
即可。
在download中找到对应的版本并下载
- 启动客户端授权口令
找到Auth,将Your Tunnel Authtoken copy下来
在下载的目录下,打开ngrok.exe
首次打开时,需要输入: ngrok authtoken 自己的token
(刚才copy的)
之后再次打开不必输入
- 运行获得网络地址
然后再输入:ngrok http 8080
(这里的8080是程序的端口号,可以根据需求更改)
此时箭头指向的http://aeebbd6b.ngrok.io 和https://aeebbd6b.ngrok.io都可远程访问本地web服务器
需要注意的是每次运行的地址都不一样,这也带来了很多的麻烦,每次运行都要更改地址,所以可以花钱固定地址,就可以省去了每次启动替换地址的麻烦。