| 2021-11-9
提到代理服务器是连接Internet与Intranet的桥梁,ngrok 就是一个反向代理,反向代理在计算机网络中是代理服务器的一种。在使用过程中,通过在公共的端点和本地运行的 web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。
作为一个web开发者,我们有时候会需要临时地将一个本地的web网站部署到外网,以供他人体验评价或协助调试等等,通常我们会这么做:
找到一台运行于外网的web服务器
服务器上有网站所需要的环境,否则自行搭建
将网站部署到服务器上
调试结束后,再将网站从服务器上删除
有了ngrok之后,世界是如此的美好
首先注册并下载ngrok,得到一串授权码
运行命令ngrok -authtoken 你的授权码 80,80是你本地web服务的端口,而之后ngrok会记住你的授权码,直接ngrok 80就OK了
你会得到一串网址,通过这个网址就可以访问你本地的web服务了
对客户端隐藏服务器(集群)的IP地址
安全:作为应用层防火墙,为网站提供对基于web的攻击行为(例如DoS/DDoS)的防护,更容易排查恶意软件等
为后端服务器(集群)统一提供加密和SSL加速(如SSL终端代理)
负载均衡,若服务器集群中有负荷较高者,反向代理通过URL重写,根据连线请求从负荷较低者获取与所需相同的资源或备援
对于静态内容及短时间内有大量访问请求的动态内容提供缓存服务
对一些内容进行压缩,以节约带宽或为网络带宽不佳的网络提供服务
减速上传
为在私有网络下(如局域网)的服务器集群提供NAT穿透及外网发布服务
如果以我们开发人员的机子作为服务端,有开发环境,又有tomcat,数据库等等,如果能够直接将机子这个内网的IP映射到公网多好啊。这就是我们将要介绍的内网穿透利器,而且是免费的!
1.ngrok
ngrok 是一个反向代理,通过在公共的端点和本地运行的 web 服务器之间建立一个安全的通道。ngrok是外国发布的一个开源项目,也有一个公开的运行服务,但被国内墙掉了。国内一个机构建立并运营了一个ngrok运行服务,虽然有时不太稳定,但对于调试人员来说是足够的。其支持HTTP的80端口和TCP端口转发。下面介绍使用方法。微信开发调试即需要一个公网IP/域名和80端口。
1) 注册登陆ngrok平台,申请一个ngrok.cc下的二级域名,并在基本信息里面获得token值。
内网穿透--ngrok和花生壳
2) 下载ngrok客户端并运行,输入token值即可。非常简单。这样本机就可以作为一个web服务器啦。
3) 将 http://www.emlinuxhome.ngrok.cc/ 填入微信公众号的服务器配置里面,可以立刻开始微信web调试。当然,微信也提供了一个web调试工具,但是要装QQ浏览器,调试H5方便些,其他就无所谓啦。
2.花生壳
使用方法跟ngrok差不多,也是通过web管理中心注册二级域名和配置,并通过花生壳的客户端来反向代理,实现内网穿透。花生壳在国内物联网领域广泛使用,例如视频监控等等。
很容易想象公网数据交互过程:用户web访问二级域名->ngrok/花生壳一级域名转发数据->本地内网客户端接收到数据。
在安装完成花生壳实现ngrok内网穿透的客户端,以及注册花生壳账号之后就可以使用花生壳进行内网穿透了。使用花生壳提高的不仅仅是办公效率,也会让客户拥有其他多方面更好的体验。利用花生壳进行远程办公、远程数据以及安防监控都比较切合的体验客户的实际操作需求,可以极大的化满足客户的需求。