ngrok内网穿透利器&本机代码部署外网访问神器
2014-12-19 13:27
260 查看
作为一个 web 开发者,有时候,你需要将你本地正在开发中的网站远程展示给别人看,例如让别人评价下你的设计,协助调试等。
之前我能想到的办法,就是在自己的 VPS 上搭建一个测试站点,将开发代码部署上去。
今天,发现了 ngrok 这个神奇,再也不用这么麻烦了,ngrok 支持Mac
OS X,Linux,Windows平台!
官网:https://ngrok.com/
参考资料网站: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域名的时候提示找不到。
-------------------------------------------------------------------------------------------------------------------------------------
假如,你的本地站点运行在 8000 端口。
注册 ngrok 后,你会得到一串授权码。根据提示,运行下面的命令:
注意: 这个授权码只是第一次使用时需要。ngrok 会记住。下次使用时,只需要 ngrok 8000 就 OK 啦。
此时终端界面上会给你两个公网 url:
然后,你就可以选择其中一个,发送给对方,他就可以看到你的本地网站啦!
有木有觉得世界豁然开朗了起来?
----------------------------------------------------------------------------------------------------------------------
使用实例:
1. ngrok下载运行
体积很小,官网下载后直接解压得到一个二进制文件,在shell中执行./ngrok
80即可,默认会分配随机的二级域名来访问,转发到本机的80端口。可以通过-help参数来查看详细的说明,运行后如下提示:
我这里是使用了自定义二级域名,意味着访问http://steven-mbp.ngrok.com就如同访问内网的http://127.0.0.1:8080,很方便吧。通过ngrok提供的管理界面(127.0.0.1:4040)可以清楚的看到当前有哪些连接,以及请求的url,可以进行replay。
2. ngrok常用示例
1. 采用自定义二级域名steven-mbp.ngrok.com转发到本机的8080端口。
2. tcp端口转发,这意味着可以在外网ssh到本机了,当然外网端口是随机分配的。
3. 转发到局域网其他的机器
4. 绑定顶级域名(付费才可用),在dashboard中添加域名,将域名cname解析到ngrok.com即可。
3. ngrok配置文件
ngrok可以将参数写到文件中,默认是放在~/.ngrok。例如:
这里定义了三个隧道,client表示转发http到本机8080,同时要求验证,ssh表示支持远程访问,第三个是绑定了域名转发到9090。这时候只需要一个./ngrok start client ssh test.dorole.com即可快速启动这三个隧道服务。
每一个隧道的配置节点都有五个参数,proto,subdomain,auth,hostname和remote_port,每个隧道必须有proto参数来指定本地地址和端口。auth参数用于在http(s)中身份认证,而remote_port用于在tcp隧道中指定远程服务器端口。如果没有配置subdomain参数,ngrok会默认一个二级域名与隧道节点一样的名字。
4. 配置文件中的其他参数
authtoken用于设置登录ngrok的授权码,可以在ngrok首页的dashboard中查看到。inspect_addr用于设置监听ip,比如设置为0.0.0.0:8080意味着监听本机所有ip的8080端口上。ngrok也支持自己架设ngrokd服务器,在配置中通过server_addr: “dorole.com:8081″来指定自己搭建的服务器地址。设置trust_host_root_certs: true来支持TLS加密协议的证书信任。ngrok支持http proxy,可以将ngrok配置成一个http代理,这在本机网络受限制的地方用比较合适。
之前我能想到的办法,就是在自己的 VPS 上搭建一个测试站点,将开发代码部署上去。
今天,发现了 ngrok 这个神奇,再也不用这么麻烦了,ngrok 支持Mac
OS X,Linux,Windows平台!
官网:https://ngrok.com/
参考资料网站: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域名的时候提示找不到。
-------------------------------------------------------------------------------------------------------------------------------------
假如,你的本地站点运行在 8000 端口。
注册 ngrok 后,你会得到一串授权码。根据提示,运行下面的命令:
此时终端界面上会给你两个公网 url:
有木有觉得世界豁然开朗了起来?
----------------------------------------------------------------------------------------------------------------------
使用实例:
1. ngrok下载运行
体积很小,官网下载后直接解压得到一个二进制文件,在shell中执行./ngrok
80即可,默认会分配随机的二级域名来访问,转发到本机的80端口。可以通过-help参数来查看详细的说明,运行后如下提示:
2. ngrok常用示例
1. 采用自定义二级域名steven-mbp.ngrok.com转发到本机的8080端口。
ngrok可以将参数写到文件中,默认是放在~/.ngrok。例如:
每一个隧道的配置节点都有五个参数,proto,subdomain,auth,hostname和remote_port,每个隧道必须有proto参数来指定本地地址和端口。auth参数用于在http(s)中身份认证,而remote_port用于在tcp隧道中指定远程服务器端口。如果没有配置subdomain参数,ngrok会默认一个二级域名与隧道节点一样的名字。
4. 配置文件中的其他参数
相关文章推荐
- ngrok 本机代码部署外网访问神器
- ngrok 本机代码部署外网访问神器
- ngrok 本机代码部署外网访问神器
- ngrok 本机代码部署外网访问神器
- ngrok 本机代码部署外网访问神器(转)
- ngrok 本机代码部署外网访问神器
- ngrok 本机代码部署外网访问神器
- 新手神器!不用部署深度学习环境、上传数据集!(附代码&视频教程)
- 让外网访问VMware的Linux,访问虚拟机上部署的javaweb项目
- ASP.NET & JAVASCRIPT: 在Javascript代码中访问服务器控件的ID
- 用域名在自己机子上部署web应用,可通过外网访问
- 让外网访问VMware的Linux,访问虚拟机上部署的javaweb项目
- 部署错误:尚未授予访问 Tomcat 服务器的权限。请在服务器管理器的 Tomcat 定制器中设置 "manager-script" 角色的正确用户名和口令。 有关详细信息,请查看服务器日志。
- 使用花生壳、路由器、个人电脑进行站点部署并实现外网域名访问图文详解(花生壳设置方法 使用方法 使用教程)
- Exchange Server 2013 高可用部署系列(五)外网访问和证书配置
- webServices部署之后外网访问出现“测试窗体只能用于来自本地计算机的请求。 ”
- android 访问授权代码位置
- tomcat 部署 外网访问
- Win7部署asp.net网站,问题逐个突破<一>---Win7 IIS 部署网站,同局域网中电脑无法访问解决方案
- .NET webservice 部署IIS 外网访问无法调用