相信做Web开发的同学们,经常会遇到需要将本地部署的Web应用能够让公网环境直接访问到的情况,例如微信应用调试、支付宝接口调试等。这个时候,一个叫ngrok的神器可能会帮到你,它提供了一个能够在公网安全访问内网Web主机的工具,能捕获所有HTTP请求的内容,也支持TCP端口映射,支持Linux、Windows、Mac OS X 等平台。

  我们现在就来小试下牛刀,感受下 ngrok 的好玩之处。

一、ngrok 下载

  到官网下载ngrok小工具:https://ngrok.com/,工具体积很小,现在已经升级到 2.X 的版本,只支持64位操作系统,并被作者用于商业化。1.X版本的免费自定义固定二级域名功能已经开始收费,这块后面会说明。

二、ngrok 使用

 以windows版本为例,把下载的压缩包解压到本机硬盘,用 DOS命令切换到 ngrok.exe 所在的目录:

好了,接下来如何使用呢?我们来通过演示几个简单样例来说明:

输入 ngrok http 8001,回车,出现如下信息:

 意思是 ,随机分配一个公网可以访问的二级域名http://49412880.ngrok.io/ 转发到我们本机的8001端口 ,这也就意味着,现在访问 http://49412880.ngrok.io/ 就如同访问内网的http://127.0.0.1:8001。

  同时通过ngrok提供的管理界面(http://127.0.0.1:4040)可以清晰的看到当前有哪些连接、请求的URL等, 是不是很方便?但是上面分配的域名是临时且随机的,一旦本机重启或者ngrok重启后,这个域名就变化了。如何把一个固定的域名映射到本机呢? V1.X的版本是可以免费支持将一个固定的二级域名指向本机的,不过作者已经把 V2.X的版本商业化,所以固定域名的转发现在需要收费了,费用倒是不贵,有兴趣的同学可以去官网看看。

当我们的机器绑定了多个IP时,通过指定IP来转发映射:ngrok http 192.168.1.101:8006

也可以转发同一局域网内其它的主机和端口:ngrok http 192.168.4.6:8008

TCP端口转发:ngrok tcp 22

       ngrok tcp 3389  

这样我们可以在公网SSH到内网Linux机器,远程桌面到内网Windows机器了,当然外网端口也是临时随机的。如下图,我们已经在公网环境下远程到了内网windows机器上

怎么样,有意思吧。

三、ngrok小问题

  不过需要说明一点,ngrok的访问可能会不太稳定,原因你们都懂的,指不定哪天就被墙了。

转载自:http://www.cnblogs.com/maoniu602/p/5524476.html

随机推荐

  1. 创建一个ASP.NET MVC OutputCache ActionFilterAttribute

    在每一个web应用程序中, 有的情况下,你想在一段时间内缓存一个具体的页面HTML输出,因为相关的数据和处理并不是总是变化.这种缓存的响应是储存在服务器的内存中.因为没有必要的额外处理,它提供了非常快 ...

  2. java实现map和object互转的三种方法

    /**  * 使用org.apache.commons.beanutils进行转换  */  class A {              public static Object mapToObje ...

  3. hdu 2086

    PS:推算...数组如果开得不够大也会超时... 代码: #include "stdio.h" double cal(int t,double a[]); int main(){ ...

  4. linux下启动dbca或netmgr类的图形界面报错解决

    linux下启动dbca或netmgr类的图形界面报错解决    Xlib: connection to ":0.0" refused by server Xlib: No pro ...

  5. js获取字符串最后一个字符代码

    方法一:运用String对象下的charAt方法 charAt() 方法可返回指定位置的字符. 代码如下 复制代码 str.charAt(str.length – 1) 请注意,JavaScript ...

  6. Python内置函数(4)——min

    英文文档: min(iterable, *[, key, default]) min(arg1, arg2, *args[, key]) Return the smallest item in an ...

  7. hdu 4825 Xor Sum (01 Trie)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=4825 题面: Xor Sum Time Limit: 2000/1000 MS (Java/Others) ...

  8. 第四百零三节,python网站在线支付,支付宝接口集成与远程调试,

    第四百零三节,python网站在线支付,支付宝接口集成与远程调试, windows系统安装Python虚拟环境 首先保证你的系统已经安装好了Python 安装virtualenv C:\WINDOWS ...

  9. 如何快速学习Scala

    大数据学习过程中,会学习非常多的技术,但SCALA无疑是必不可少,那我们在大数据技术的学习过程中,如何快速的认识scala,并且学习它,感谢科多大数据公司的余老师提供的详细素材,本人整理成章,希望对你 ...

  10. 架构:Hexagonal Architecture Guidelines for Rails(转载)

    原文地址:http://theaudaciouscodeexperiment.com/blog/2014/03/17/hexagonal-architecture-guidelines-for-rai ...