背景:听哥们说了个工具ngrok,可以让本机配置的web服务在外网访问,抱着将信将疑的态度试了试,发现还真的可以。下面记录下我自己的安装步骤,另外谈下自己还有些疑问的地方。
参考资料网站:http://blog.csdn.net/liuxiyangyang/article/details/22922265
一、首先访问官网,https://ngrok.com/ 注册一个账号(注册后才能获取自己的一个账号秘钥用于进行后面的绑定操作)。
二、注册完成后,在跳转后的页面不用理会支付模块,可以看到自己的秘钥信息以及一个下载链接,如下图。
三、点击下载链接,下载ngrok(开始下载后,可以点击浏览器返回到之前有秘钥信息的页面,页面暂时不要关闭,后面还有用),下载完成后可以看到压缩包里只有一个.exe文件。提示下千万不要习惯性的以为解压到当前文件夹,然后双击.exe文件哦。我就是没看完流程这么干的,然后就发现怎么弄都装不上,正确的操作是解压的时候选择 解压到 ngrok 这个选项。然后将解压生成的文件夹直接放到自己想放的地方,例如我直接放到D:\ProgramFiles目录下。
四、打开cmd窗口开始进行安装:
1.进入 d盘 根目录,在cmd窗口敲入命令 D: 回车;
2.进入ngrok目录,在cmd窗口敲入命令 cd ProgramFiles\ngrok;
3.此时回头看第三步让浏览器保留的页面,将下面截图里的蓝色背景区域命令,复制到cmd命令装口,回车运行,就可以了。
说明:此过程的1、2步主要是为了找到第三步可以运行命令的位置。命令中的80数值,是指你本地web服务运行的端口,例如php会是80端口居多而jsp则会是8080端口居多,根据自己web服务运行的实际端口填写值就好。
五、运行完上面的命令,可以看到ngrok配置完成后的信息,如下截图,红色区域就是给分配的外网访问域名。或者也可以通过访问 http://localhost:4040/ 查看到相同的信息。
六、配置指定自定义域名替换掉工具生成8位不容易记住的域名,在上面截图的cmd窗口ctrl+c退出,复制命令 ngrok -subdomain=cdy 80 回车就可以看到绑定后的访问域名是 http://cdy.ngrok.com 将访问域名放到浏览器,可以确定访问如下截图。
补充:到上面所有的ngrok应用算是完成了,对于这个的访问原理有些疑惑如下:
1.作为web开发人员,我所知道的一个外网访问流程是 由客户端在浏览器地址栏输入访问url,然后由url里的域名解析到域名绑定的IP,再由IP解析到绑定的服务器,之后再由服务器端web配置的域名解析定向访问文件。但是,我本地机的IP并不是固定的IP,那么我就不清楚工具是怎么完成绑定我本地机的?
2.由于1的疑惑,有点担心的是这个工具,会不会在我不清楚的情况获取我web配置的DocumentRoot 指向文件目录下的文件信息(也是基于此建议想用到的朋友最好在自己的DocumentRoot 指向文件目录下放一个index.html文件,测试过如果不放的话,会看到web文件目录的目录结构)。
3.当我退出ngrok后,再访问http://cdy.ngrok.com/ 发现会提示这个域名没有被找到。于是有点猜测会不会是拿我的临时IP进行绑定的,用指定域名的形式开启ngrok命令是ngrok -subdomain=cdy 80 ,访问下域名确定可以看到测试信息。然后新启一个cmd窗口进行下ping的解析测试,悲剧的是ping域名的时候提示找不到。
总结:总的来说ngrok是个挺好的工具,但是我不太清楚的是究竟会不会存在我疑惑里提到的第二点担心,期待清楚的朋友给个确定,QQ304599713。