ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。ngrok是外国发布的一个开源项目,也有一个公开的运行服务,但被国内墙掉了。国内一个机构建立并运营了一个ngrok运行服务,虽然有时不太稳定,但对于调试人员来说是足够的。
ngrok相关知识详解
1、为什么要使用ngrok。
作为一个Web开发者,我们有时候会需要临时地将一个本地的Web网站部署到外网,以供他人体验评价或协助调试等等,通常我们会这么做:
找到一台运行于外网的Web服务器
服务器上有网站所需要的环境,否则自行搭建
将网站部署到服务器上
调试结束后,再将网站从服务器上删除
只不过是想向朋友展示一下网站而已,要不要这么麻烦,累感不爱╰(`□′)╯
2、ngrok可以做什么。
启动ngrok后,会获得一个随机的二级域名,当我们启动电脑上的tomcat(或其他)时,我们就可以通过ngrok获取的这个域名访问到我们的这个web项目,就如同我们访问本机的localhost一样。
3、获取ngrok。
在ngrok官网https://ngrok.com/download 下载ngrok;
注:访问官方网站需要翻墙,也可以自行百度下载。
个人电脑变成服务器,使用ngrok将本地Web服务映射到外网
4、启动ngrok。
双击ngrok.exe,会弹出一个cmd命令框,然后输入ngrok http +端口,如ngrok http 80,及可以启动程序。
网上大多数都是“打开CMD命令行,进入ngrok.exe所在目录,运行ngrok.exe+端口,如ngrok.exe 80。”可是本人测试这样不能正常启动,需要输入的命令换成ngrok.exe http+端口才可以正常启动。
个人电脑变成服务器,使用ngrok将本地Web服务映射到外网
输入ngrok http 80启动后,
个人电脑变成服务器,使用ngrok将本地Web服务映射到外网
获取的二级域名就是 http://cc5e1e4e.ngrok.io。
5、访问。
这时当我们创建一个Java web项目时,启动tomcat就可以通过这个域名访问到我们本地的项目了。
花生壳如何通过ngrok实现内网穿透?
如果以我们开发人员的机子作为服务端,有开发环境,又有tomcat,数据库等等,如果能够直接将机子这个内网的IP映射到公网多好啊。这就是我们将要介绍的内网穿透利器,而且是免费的!
1.Ngrok
Ngrok是外国发布的一个开源项目,也有一个公开的运行服务,但被国内墙掉了。国内一个机构建立并运营了一个ngrok运行服务,虽然有时不太稳定,但对于调试人员来说是足够的。地址:http://www.ngrok.cc/ 。其支持HTTP的80端口和TCP端口转发。下面介绍使用方法。微信开发调试即需要一个公网IP/域名和80端口。
1) 注册登陆ngrok平台,申请一个ngrok.cc下的二级域名,并在基本信息里面获得token值。
2) 下载ngrok客户端并运行,输入token值即可。非常简单。这样本机就可以作为一个web服务器啦。
3) 将http://www.emlinuxhome.ngrok.cc/ 填入微信公众号的服务器配置里面,可以立刻开始微信web调试。当然,微信也提供了一个web调试工具,但是要装QQ浏览器,调试H5方便些,其他就无所谓啦。
2.花生壳
Ngrok有时不稳定,用了一段时间,似乎二级域名会被锁住,一直免费确实很难运维,最好就是大家捐赠些给它。这里也多说一句,作为开发人员,如果你从原创里面学到东西,有时打赏一两块友情鼓励是必要的,否则谁能一直源源不断地原创贡献啊。鼓励对原创者是最好的支持!当然,原创者也不可能靠这一两块谋生的,否则早饿死了:-)
企鹅圈现在有3500+开发人员,我的邮箱每天会收到20封以上的请教和咨询邮件,我现在基本不做回复,除非注明有打赏过嵌入式企鹅圈的文章,我会耐心回答。大家的时间都很宝贵,理解就是了。
OK,花生壳也是内网穿透利器,但是是收费的。有个免费版本是提供免费的1G流量。官网是:http://www.oray.com/。
使用方法跟ngrok差不多,也是通过web管理中心注册二级域名和配置,并通过花生壳的客户端来反向代理,实现内网穿透。花生壳在国内物联网领域广泛使用,例如视频监控等等。
3.数据流向
很容易想象公网数据交互过程:用户web访问二级域名->ngrok/花生壳一级域名转发数据->本地内网客户端接收到数据。
花生壳动态域名解析以颠覆式的动态域名技术创新,全新的交互界面及功能体验,满足你多元化的需求,带给你焕然一新的使用感受。在安装完成花生壳实现ngrok内网穿透的客户端以及注册花生壳账号之后就可以使用花生壳进行内网穿透了。