背景:听哥们说了个工具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是个挺好的工具,但是我不太清楚的是究竟会不会存在我疑惑里提到的第二点担心

http://blog.csdn.net/gebitan505/article/details/39497779

ngrok 本机代码部署外网访问神器(转)的更多相关文章

  1. ngrok 外网访问小能手

    以前在学校的时候想把自己做的网站发布让外网访问,可是又没有虚拟服务器和域名就显得异常的麻烦,曾经试过花生壳映射,效果虽然还不错,但是略显麻烦.今天找到一个更方便的小工具--ngrok ! 简单的介绍一 ...

  2. windows azure中国 里面建立一个虚拟机,与虚拟机建立通信 里面部署IIS,外网访问

    在windows azure中国 里面建立一个虚拟机,里面部署IIS,外网不能访问么? 外网访问的地址是给的那个DNS地址 ,比如我的是 DNS 名称 urbanairserver.cloudapp. ...

  3. asp.net core 部署到服务器之后外网访问不了

    部署发现问题 今天在部署.net core的时候,发现访问http://localhost:xxxx可以,但是用外网访问并不行! 开始尝试解决问题 一开始以为是nginx的问题.各种折腾,各种改配置文 ...

  4. 腾讯云linux系统部署项目无法通过外网访问

    最近尝试使用了一下腾讯去的linux系统服务器,但是却遇到各种问题,下面记录的问题是项目部署完成后却无法通过外网访问. 服务器:腾讯云 系统 :CentOS 8.0 64位 处理思路:通过度娘百般摸索 ...

  5. Linux-在新买的阿里云服务器上部署Tomcat并支持外网访问的配置(步骤记录)

    一.首先你得有一台外网上的服务器 华为.腾讯.阿里都有云服务售卖,我这里是在阿里云打折时购买的. 二.使用Xshell和XFTP连接上云服务 当然了,连接工具有很多种,可随意.购买服务器之后,你会收到 ...

  6. frp内网 穿透映射使内网svn可外网访问

    起因 公司svn目前部署在内网服务器上,现在想在家中也可以使用,因此需要外网访问内网的工具 经过 使用过几个产品: utools,一个小巧的windows下的工具,内网映射只是它的一个小功能,支持tc ...

  7. 闲置安卓设备搭建Linux服务器实现外网访问

    title: 闲置安卓设备搭建Linux服务器实现外网访问 这是我搭过的第一个博客系统,写贴纪念一下 待博主整理好思路,将今天所用到的全部分享! 好吧,我就是穷.富人靠科技,穷人靠变异.我这种穷人是真 ...

  8. python restful 框架之 eve 外网访问设置

    官网地址: http://python-eve.org/ 配合mongodb进行crud使用起来很方便,但是部署的时候遇到一个问题,按照官网和Deom说的,servername使用 '127.0.0. ...

  9. docker kafka 外网访问不到

    linux虚拟机中的kafka docker 容器外网显示: 原因: kafka的外网IP端口配置参数设置错误. 原-->设置了容器的IP端口. 改-->设置宿主机的ip以及宿主机上的端口 ...

随机推荐

  1. Ajax请求URL后加随机数原理

    原文:Ajax请求URL后加随机数原理 例如: $.ajax({             type: "GET",    url: "login.action?ran=& ...

  2. 系统变量file.encoding对Java的运行影响有多大?(转)good

    这个话题来自: Nutz的issue 361 在考虑这个issue时, 我一直倾向于使用系统变量file.encoding来改变JVM的默认编码. 今天,我想到, 这个系统变量,对JVM的影响到底有多 ...

  3. anthelion编译

    编程工程 $ cd ./anthelion/anthelion/target/classes$ java -Xmx15G -cp ../Anthelion-1.0.0-jar-with-depende ...

  4. c语言实现动态指针数组Dynamic arrays

    c语言实现动态数组.其它c的数据结构实现,hashTable參考点击打开链接 treeStruct參考点击打开链接 基本原理:事先准备好一个固定长度的数组. 假设长度不够的时候.realloc一块区域 ...

  5. 它们的定义Adapterg在etView( )正在使用View.setTag()与不同的是不使用。

    首先看使用Tag案件. @Override public View getView(int position, View view, ViewGroup group) { ViewHolder hol ...

  6. Cocos2d-x 3.0 创建一个场景,并设置现场的时候,项目开始执行上主动

    头 #ifndef __TEST_H__ #define __TEST_H__ #include "cocos2d.h" USING_NS_CC; class Test : pub ...

  7. iOS学习——iOS国际化(十二)

    开发的移动应用更希望获取更多用户,走向世界,这就需要应用国际化,国际化其实就是多语言.这篇文章介绍Xcode4.5以后的国际化,包括应用名国际化和应用内容国际化.如果是Xcode4.5之前版本请参考. ...

  8. Managing Data in Containers

    Managing Data in Containers So far we've been introduced to some basic Docker concepts, seen how to ...

  9. 开玩笑Web它servlet(五岁以下儿童)---- 如何解决servlet线程安全问题

    servlet默认值是安全线的存在,但说白,servlet安全线实际上是一个多线程线程安全问题.因为servlet它正好是一个多线程的安全问题出现. 每次通过浏览器http同意提交请求,将一个实例se ...

  10. FOJ 1591 —— Coral的烦恼

    #include<stdio.h> int main() { __int64 n,i,sum,l,r; while(scanf("%I64d",&n)!=EOF ...