【群友】Ngrok让你的本地Web应用暴露在公网上
1.Ngrok介绍
Ngrok是一个反向代理,通过在公共的端点和本地运行的Web服务器之间建立一个安全的通道。Ngrok可捕获和分析所有通道上的流量,便于后期分析和重放。简单来说,利用 Ngrok可以通过外网来访问部署在本地服务器的网站,它还提供一个Web管理页来监控HTTP通信报文,方便程序员发现问题、开发调试。另外Ngrok还支持TCP层端口映射,不局限于某一特定的服务。支持Mac OS X,Linux,Windows平台。
Ngrok 官方网站:https://ngrok.com/
Ngrok 开源地址: https://github.com/inconshreveable/ngrok/
2.应用场景
2.1.WEB开发
作为一个Web开发者,有时候会需要临时地将一个本地的Web网站部署到外网,供他人体验评价或协助调试。传统的做法是利用花生壳等动态域名或自行搭建V**做端口映射,而利用 Ngrok几条命令就搞定。
2.2.微信开发
在做微信开发的时候,需要经常用微信客户端调试系统服务功能,但是在开发阶段服务端程序一般是运行在本地服务器上。这样,微信在公网上在是没有办法访问到本地服务器资源的。解决微信本地开发的关键就是能够将本地服务IP映射到公网上,所以Ngrok对于在本地进行微信开发很有作用。
2.3.TCP端口转发
TCP端口转发,这意味着可以在外网SSH到本机了,当然外网端口是随机分配的。
3.简单使用
实验环境:Windows7、Ngrok 2.1.3
Step1:首先去Ngrok官网去下载最新版本客户端。Windows版本下载解压后只有ngrok.exe一个文件,暂将其放置在D盘根目录下。
Step2:首次使用Ngrok服务需要先为本机安装authtoken。在Ngrok官网注册一个账号,在Auth菜单下获取官方分配的authtoken。(该步可省略,但是未注册用户不具备自定义域名等高级功能)
Step3:安装authtoken,按下Win+R键-->运行-->执行cmd。cd进入到ngrok.exe的根目录下,输入如下指令:
ngrok authtoken <YOUR_AUTHTOKEN>
Step4:通过上述几步,现在就可以创建一个安全隧道,将本地服务IP映射到公网上。执行下面命令就可以为本机`localhost:8080`地址分配一个Ngrok官网下随机二级域名。
ngrok http 8080
Step5:从上图Ngrok服务开启后的状态可以看出` http://7a65105c.ngrok.io`就是生成的公网域名。但有个问题,它是随机生成的,每次启动Ngrok服务都会重新生成,在微信开发的时候很不方便。Ngrok提供了解决方案,允许绑定自定义二级域名和顶级域名(收费功能),只要在ngrok.exe的根目录下执行如下命令:
ngrok http -subdomain=[二级域名] [端口] //绑定Ngrok二级域名ngrok http -hostname=[顶级域名] [端口] //绑定自定义顶级域名
Step6:打开web界面在`http://localhost:4040`检查和重复请求,监控HTTP通信报文。
关于 Ngrok 就讲到这了,本人也是初次使用,很多高级功能未涉及。如果各位看官有需要请移步官方文档。
4.国内Ngrok服务
Ngrok是非常好的工具,但是它的服务器在国外,国内存在访问稳定性差、速度慢等问题。这个给国内的程序员带了很多不便。好在Ngrok是个开源项目,有些前辈或公司在Ngrok项目基础之上做了改进,提供了功能相似的国内Ngrok服务。
相关推荐:
- Sunny-Ngrok内网转发
- Ngrok国内免费服务器——糖果科技
- NATAPP 基于ngrok高速内网穿透服务
- pc5s - 互联网到个人电脑的反向代理
其具体使用规则很简单,并且都有详细的文档或视频说明。
5.参考与扩展
[1] l631068264,Windows 下 配置 ngrok ngrok使用教程
[2] 林泳坛,关于Ngrok的一些思考
[3] 攀哥, 自建Ngrok服务与使用方法
原文链接:http://www.cnblogs.com/gao-yang/p/5677340.html
- 【Java概念学习】--数组的初始化
- linux下重命名文件或文件夹使用mv既可实现。
- 第三课:把tensorflow,模型和测试数据导入Android工程
- D-Link 路由器信息泄露和远程命令执行漏洞分析及全球数据分析报告
- Wordpress安全架构分析
- CVE-2017-5123 漏洞利用全攻略
- 简单分析shared pool(三) (r5笔记第94天)
- OpenCV在车道线查找中的使用
- ESP32 DevKitC 编译烧写 AliOS Things
- 使用R完成K近邻分类
- 使用R完成逻辑斯蒂回归分类 直接上代码,如下:
- 基于时间点的不完全恢复的例子(r6笔记第9天)
- R-正太分布,检验
- R完成--决策树分类 一个使用rpart完成决策树分类的例子如下:
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法