`
sky13551389
  • 浏览: 3143 次
社区版块
存档分类
最新评论

ngrok内网穿透原理分析和实现

阅读更多

转载: http://www.dkys.org/archives/92.html
在互联网终端急剧增长的今天,公网ip已经成为稀缺资源,对于国内垄断的电信运营商来讲,更是不可能随便免费给你一个公网ip,许多家庭宽带都无法分配到公网ip,又或者公司学校安全角度考量,为了防止网络攻击,资料泄露,禁止内网机器通过路由器进行端口映射,搭建代理服务器,由此许多内网穿透,内网映射软件应运而生,根据网络通内网端口映射工具的多年开发经验,和大家分享一下内网穿透的原理和简单实现,网络通,花生壳内网版,ngrok等原理都是大同小异的.

首先传输协议选择,tcp或者udp,udp协议是被监控的最厉害的协议,因为p2p软件,迅雷,bt,emlue都频繁的使用udp,网络管理员经常会将udp协议禁掉,除了dns的53端口,所以tcp协议是首选.

既然不能在路由器就在公网搭建一个服务器,通过公网服务器帮我们转发数据,ngrok就提供了这样的转发服务器,如果嫌ngrok国外服务器太慢,自己搭建是首选,网络通  http://www.dkys.org 则内置国内穿透服务器,节省了很多功夫.

服务端是接收外部连接的,还需要客户端,将请求转发到内网服务器,为了实时知道有连接进来,客户端要和服务端建立tcp长连接.

穿透过程:

1.当服务端接收到连接,就读取映射表,判断接收的端口对应于哪一个客户端,然后向客户端发送通知.

2.客户端收到通知,读取本地映射表,判断对应哪个内网地址,向内网地址发起连接.

3.客户端和内网的服务器建立连接后,向服务端发起一个连接,作为转发通道.

4.服务端读取请求数据,并通过转发通道转发到客户端,客户端读取响应并通过转发通道返回给请求.

这只是一个简单的连接过程,其中还有映射端口的管理,如果是全端口映射还需要动态映射端口,目前只有网络通有这个全端口的功能,对于一些特殊应用,还要修改解析修改转发的数据才能穿透成功.

 

分享到:
评论

相关推荐

    ngrok内网穿透压缩包

    ngrok是一款强大的内网穿透工具,它允许用户将本地的Web服务暴露到公网,以便在任何地方访问。这款工具在开发、测试、演示等场景下非常有用,尤其对于那些没有固定公网IP或者需要分享未上线的项目给他人的情况。下面...

    ngrok内网穿透(windows)

    **ngrok内网穿透技术详解(Windows平台)** 在当今互联网时代,许多开发者和系统管理员经常需要在本地环境中测试Web应用或服务,并希望这些服务能够被外部网络访问。这时,内网穿透工具就显得尤为重要。ngrok是一款...

    ngrok.rar 内网穿透工具

    ngrok还提供了丰富的日志和统计功能,方便开发者分析和调试。 ngrok_2.exe可能是ngrok的另一种实现或者第三方修改版,它的具体功能和性能可能会有所不同。一般来说,这类替代版本可能提供一些额外的功能,如定制...

    Ngrok客户端(内网穿透工具)

    Ngrok是一款强大的内网穿透工具,它允许用户将本地的服务器暴露到公网,即使设备处于内网环境下,也能通过互联网进行访问。这个工具在开发、测试、演示等场景下非常实用,尤其对于那些需要分享未上线的项目或者进行...

    ngrok_win64.rar

    内网穿透工具ngrok是一款非常实用的软件,尤其对于开发者来说,它解决了在没有公网IP或者受到网络限制情况下,对外展示或调试本地服务的问题。标题中的"ngrok_win64.rar"表明这是一个针对Windows 64位系统的ngrok...

    ngrok穿透工具

    例如,开发者在进行Web应用开发时,可以通过ngrok生成一个公开的URL,让测试人员或合作方无需访问内网就能对项目进行查看和测试。 ngrok的工作原理是通过在ngrok服务器和本地服务器之间建立一个安全的隧道。用户...

    ngrok客户端windows+64版

    ngrok是一款强大的内网穿透工具,它允许用户将本地的HTTP或HTTPS服务暴露到公网,以便在任何地方访问。这款工具特别适用于开发人员在测试、演示或者分享本地应用时,无需部署到远程服务器就能实现远程访问。在"ngrok...

    ngrok客户端window64

    ngrok是一款强大的内网穿透工具,它允许用户将本地的服务器暴露到公网,方便在不同网络环境下进行远程访问和调试。这款工具特别适合开发者在测试和演示阶段使用,无需复杂的网络配置,就能让其他人或者远程服务器与...

    自己写的精细版ngrok教程

    它的工作原理是通过在公共网络端点和本地运行的web服务器之间建立一个反向代理,并通过建立安全的通道来捕获和分析通道上的流量,这对于流量的分析和重放都提供了便利。 ngrok的使用非常简单,只需要几个步骤就可以...

    ngrok-stable-linux-amd64

    ngrok 是一款强大的内网穿透工具,主要用于帮助用户将本地的服务器或服务暴露到公网,以便在互联网上进行访问。它的名称 "ngrok" 来自于英文单词 "tunnel"(隧道)的拼写变形,暗示了其核心功能——创建安全的网络...

    ngrok-stable-windows-amd64.zip

    内网穿透是一个重要的技术概念,尤其对于开发者和网络管理员来说,它允许外部网络访问到位于内网中的服务或设备。ngrok 是一个流行的内网穿透工具,提供的稳定版WindowsAMD64架构的软件包名为"ngrok-stable-windows-...

    Go+Python双语言混合开发资料包

    内网穿透技术如Ngrok、frp等,解决了在内网环境下对外提供服务的问题,使得内网服务器也能被外部网络访问,这对于远程调试和测试非常有用。 这些文档和代码示例为Go和Python的混合开发提供了丰富的学习资源,涵盖...

    一个简单的远程控制示例

    如果在局域网内,可以使用内网穿透工具如Ngrok,让内网的计算机也能被外部访问。 3. **连接远程计算机**:使用远程控制软件,输入远程计算机的IP地址、端口号和认证信息(如用户名和密码),发起连接请求。 4. **...

    单点登录源码

    - 统一下单(统一下单接口、统一扫码)、订单管理、数据分析、财务报表、商户管理、渠道管理、对账系统、系统监控。 ![统一扫码支付](project-bootstrap/zheng-pay.png) > zheng-ucenter 通用用户管理系统, 实现...

Global site tag (gtag.js) - Google Analytics