ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放
为什么要使用ngrok
作为一个Web开发者,我们有时候会需要临时地将一个本地的Web网站部署到外网,以供他人体验评价或协助调试等等,通常我们会这么做:
找到一台运行于外网的Web服务器
服务器上有网站所需要的环境,否则自行搭建
将网站部署到服务器上
调试结束后,再将网站从服务器上删除
在互联网终端急剧增长的今天,公网ip已经成为稀缺资源,对于国内垄断的电信运营商来讲,更是不可能随便免费给你一个公网ip,许多家庭宽带都无法分配到公网ip,又或者公司学校安全角度考量,为了防止网络攻击,资料泄露,禁止内网机器通过路由器进行端口映射,搭建代理服务器,由此许多内网穿透,内网映射软件应运而生,根据网络通内网端口映射工具的多年开发经验,和大家分享一下内网穿透的原理和简单实现,网络通,花生壳内网版,ngrok等原理都是大同小异的.
首先传输协议选择,tcp或者udp,udp协议是被监控的最厉害的协议,因为p2p软件,迅雷,bt,emlue都频繁的使用udp,网络管理员经常会将udp协议禁掉,除了dns的53端口,所以tcp协议是首选.
既然不能在路由器就在公网搭建一个服务器,通过公网服务器帮我们转发数据,ngrok就提供了这样的转发服务器,如果嫌ngrok国外服务器太慢,自己搭建是首选,
服务端是接收外部连接的,还需要客户端,将请求转发到内网服务器,为了实时知道有连接进来,客户端要和服务端建立tcp长连接.
穿透过程:
1.当服务端接收到连接,就读取映射表,判断接收的端口对应于哪一个客户端,然后向客户端发送通知.
2.客户端收到通知,读取本地映射表,判断对应哪个内网地址,向内网地址发起连接.
3.客户端和内网的服务器建立连接后,向服务端发起一个连接,作为转发通道.
4.服务端读取请求数据,并通过转发通道转发到客户端,客户端读取响应并通过转发通道返回给请求.
这只是一个简单的连接过程,其中还有映射端口的管理,如果是全端口映射还需要动态映射端口,目前只有网络通有这个全端口的功能,对于一些特殊应用,还要修改解析修改转发的数据才能穿透成功.
相关推荐
软件介绍: 已编译好的Windows版Ngrok服务器端ngrokd.exe,压缩包内有32和64位两个版本。不用安装配置,解压就能用,网上很难找。
资源里面会有使用的介绍,如果不会也可以问我 或者百度
软件介绍: ngrok.exe使用说明:1.将startup.bat用词本等软件编辑打开2. -subdomain ts 8080 ---ts 为二级域名,修改成你自己想要的,有些可能已被使用则换一个。8080 为本地项目端口 例如项目:localhost:...
软件介绍: 将电脑内网映射为公网以便于微信开发所需要的工具ngrok.exe,内附详细的演示教程视频。
主要介绍了使用ngrok+express解决本地环境中微信接口调试问题,需要的朋友可以参考下
主要介绍了Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
VPS,并且这段时间正好也在使用Go编程,因此这篇文章将具体介绍如何在Windows上部署Ngrok项目,并且在家用树莓派上部署客户端,实现树莓派的SSH内网穿透。 关于Ngrok,值得注意的有以下几点: Ngrok并不仅仅用来22...
# python-ngrok 基本上已经完善!并且24*7小时长时间工作,在期间我们多次尝试断网重连、渠道反复注册等,均无任何问题。 采用多线程异步处理,并发性能相当强悍! # 运行环境 Python 2.7.9 或 Python 3.4.2 以上 ...
本项目已经解决ngrok内存泄漏问题国内加速地址:介绍;Bullet 特性支持http+https、Http、Https协议、TCP协议;免费开源、灵活配置、多租户支持、多协议支持;TLS实现数据的安全传输;断连重试机制;反向代理请求;...
使用此插件,您可以向同事展示您的Web应用程序,为您的客户介绍新功能,并为您的操作人员提供ssh访问权限。 由后端执行的所有隧道作业。 Ngrok隧道可以在TCP和HTTP模式下运行。 在HTTP隧道模式下, ngrok提供对...
主要介绍了小程序测试后台服务的方法(ngrok),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本资源包括ppt开发说明文档和详细的C#代码实现,借此代码可以迅速...文档中详细说明了公众平台的开发原理和 开发过程中使用的ngrok工具,使用本文介绍的方法,可使用测试号和ngrok迅速搭建在微信上可用的微信公众号。
介绍我们的服务 分别管理每个成员的数据。 协作时,开发一种工具来管理一个团队中的待办事项清单。 每个团队的待办事项列表看起来有所不同。 您只能看到该团队的待办事项。 您可以为每个用户分配一个待办事项...
介绍 ALM | DevOps Rangers社区Bot是基于Microsoft Teams,Skype和Slack的 。 详细信息,请阅读 。 入门 阅读有关的文档。 下载来帮助您进行测试。 下载 ,我们在您的本地计算机上模拟Cosmos DB。 运行Git-Ignore...
官方文档包含在本文中,我们将详细介绍一些实现细节,以允许IP地址或CIDR块列表访问我们的API端点。 我们将使用NuGet包来解析和检查IP地址和CIDR块。 值得注意的是,NuGet包使用IPNetwork2。 我们将创建一个中间件...
介绍此启动器基于使用shopify-app-cli 使用的技术是: 节点下一个.JS 考阿React北极星 (Shopify)特征创建 Shopify 应用创建 Shopify 自定义应用程序(针对一位客户) 创建一个Shopify私有应用程序(它从Shopify外部...
您是否曾经使用ngrok类似ngrok服务,可以在其中使localhost Web服务器联机? 你猜怎么着!!! 这需要在您的设备中安装第三方应用程序,这很麻烦。 同样,有时,它需要其他配置。 在最坏的情况下,您正在使用的设备...
介绍 由Github Actions提供的CI / CD管道支持,桌面和移动设备上的CV外观美观,响应Swift,带有自动生成的PDF文件。 但为什么? 我很想写一份简历,而不必太在意设计,我可以在其中轻松地进行更新和共享。 哦,它...
我们将介绍2种不同语言的2种情况,因此您需要在笔记本电脑上进行这些设置以及一些基本工具,然后介绍: 用PHP进行代理调用 使用Node.js的Websocket 基本的VAPI工具 Nexmo CLI工具 您将需要在笔记本电脑上安装nexmo...