由于要接入微信公众号,查看了官网上的接入文档,必需是80端口而且微信服务器需要验证token,那我本地开发不可能每次都把源码上传到服务器上吧,而且也不方便,这就需要能内网穿透的工具,能让外网通过外网域名访问我本机的127.0.0.1IP,于是研究了一下ngrok,ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道,而且还可以将自己的应用暴露给外部网部,是不是觉得很酷。
1.从官网上https://dashboard.ngrok.com/get-started上下载ngrok程序,我本机是win所以下载了win版
2.解压放到D盘,然后登陆ngrok,拿到authtoken
3.cmd进入到ngrok安装包里,将authtoken保存到本地c盘上。
ngrok authtoken 3Uc6rWP*******G_5QnGAh8Mptyra6aqTzu59
安装成功提示4.ngrok help会有命令提示:
看红色截图:
假设tomcat已经启动,且端口号是8183那么启动ngrok命令是:
ngrok http 8183
结果如图:
注意默认是免费版的,。
测试一下tomcat例子里的项目:http://2ff66b8a.ngrok.io/examples/index.html(注意2ff66b8a是随机域名,每次ngrok启动是不一样的)
结果如图:而本机通过http://127.0.0.1:8183/examples/index.html结果是:
发现两者是一样一样的。由于每次启动生成随机域名,我们想绑定固定域名,比如我现在开发weixin,我就想绑定weixin,而上面说过ngrok help有提示
所以输入命名:ngrok http -subdomain=weixin 8183 :绑定weixin.结果如图:
纳尼,看看错误日志,要钱,一万个***奔腾而过,算了,果然放弃官方的。不过如果舍得钱也可以花钱去买,使用方法如上,日志里有地址:https://dashboard.ngrok.com/billing/plan。
那我转而去找免费的,国内有个朋友已经搭建了一个www.tunnel.mobi的ngrok公共服务,与ngrok.com类似,也能实现内网穿透。地址:http://ngrok.2bdata.com/
步骤是解压,放D盘,cd命令进入,dos命令执行:ngrok-config=ngrok.cfg -subdomain xxx 80 //(xxx 是你自定义的域名前缀,80是你要代理的接口)。我们不仿写的start.bat如下:
ngrok-config=ngrok.cfg -subdomain chenyuanX 8183
让nrgok代理的本机的8183端口,域名是chenyuanX。
启动成功界面,http://chenyuanx.tunnel.2bdata.com ->127.0.0.1:8183即代理的本机8183的域名。(注意,还有一个https的安全协议也可以访问)
启动端口号是8183的tomcat,测试一下,是不是和上面的一样:
至此,用外网域名能成功访问我本机的应用,而且是80端口。再看看127.0.0.1:4040后台管理界面:
上面拦截到了我的请求,由于是在我本面上访问的,那如果是外网访问的是不是也能行呢。特意让我老婆在她们公司访问了一下,(呵呵),效果如下:
不过这个ngrok_2bdata不稳定,容易被攻击,想稳定还要自己用源码去配个代理服务器最好。教程以后更上。写的不好,敬请喷