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

在互联网终端急剧增长的今天,公网ip已经成为稀缺资源,对于国内垄断的电信运营商来讲,更是不可能随便免费给你一个公网ip,许多家庭宽带都无法分配到 公网ip,又或者公司学校安全角度考量,为了防止网络攻击,资料泄露,禁止内网机器通过路由器进行端口映射,搭建代理服务器,由此许多内网穿透,内网映射 软件应运而生,根据网络通内网端口映射工具的多年开发经验,和大家分享一下内网穿透的原理和简单实现,网络通,花生壳内网版,ngrok等原理都是大同小异的.
首先传输协议选择,tcp或者udp,udp协议是被监控的最厉害的协议,因为p2p软件,迅雷,bt,emlue都频繁的使用udp,网络管理员经常会将udp协议禁掉,除了dns的53端口,所以tcp协议是首选.
既然不能在路由器就在公网搭建一个服务器吧,就让公网服务器帮我们转发数据,ngrok就提供了这样的转发服务器,如果嫌ngrok国外服务器太慢,自己搭建是首选,网络通则内置国内穿透服务器,节省了很多功夫.
服务端是接收外部连接的,还需要客户端,将请求转发到内网服务器,为了实时知道有连接进来,客户端要和服务端建立tcp长连接.
穿透过程:
1.当服务端接收到连接,就读取映射表,判断接收的端口对应于哪一个客户端,然后向客户端发送通知.
2.客户端收到通知,读取本地映射表,判断对应哪个内网地址,向内网地址发起连接.
3.客户端和内网的服务器建立连接后,向服务端发起一个连接,作为转发通道.
4.服务端读取请求数据,并通过转发通道转发到客户端,客户端读取响应并通过转发通道返回给请求.
这只是一个简单的连接过程,其中还有映射端口的管理,如果是全端口映射还需要动态映射端口,目前只有网络通有这个全端口的功能,对于一些特殊应用,还要修改解析修改转发的数据才能穿透成功.

ngrok内网穿透原理分析和实现相关推荐

  1. ngrok 内网穿透

    ngrok 内网穿透 下载客户端 根据你的个人电脑系统下载匹配的客户端. 下载地址: https://ngrok.com/download 启动 打开ngrok.exe 输入命令,开放端口 ngrok ...

  2. 华硕老毛子(Padavan)——Ngrok内网穿透解决方案

    基本概念 Ngrok:ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道.Ngrok是外国发布的一个开源项目,也有一个公开的运行服务,但被国内墙掉了.国内一 ...

  3. 小米球ngrok内网穿透

    小米球ngrok内网穿透 目录 小米球ngrok内网穿透 背景 操作步骤 小米球官网,先注册,登陆 下载对应版本 系统管理-商品管理-商品列表开通 实名认证,注册版服务器两服务. 系统管理-账户管理- ...

  4. ngrok内网穿透工具搭建,方便微信公众号,小程序、钉钉等开发【已投入使用】

    前言:微信公众号,小程序.钉钉等开发需要内网穿透工具. 1.经过不断的摸索和调试,完成ngrok内网穿透的工具的搭建,对于微信公众号,小程序.钉钉等开发提供便利性. 2.搭建环境Linux cento ...

  5. 内网穿透原理和实现思路介绍

    内网穿透技术,简单理解就是将内网的服务映射到公网中,这样可以随时随地访问. 那什么是内网?什么是公网?先从这个基本概念来简单介绍吧 1. 公网.内网和外网 首先声明,公网.内网和外网这几个概念,不是专 ...

  6. 大白话告诉你内网穿透原理和验证

    内网穿透到底干啥的这里不做详述,这篇文章主要是讲这玩意怎么做的 分析 网上有很多原理图,但是说实话鄙人天资愚钝没咋看懂,在网上疯狂百度和个人的验证之后,得出如下简图 其实很简单 想让我们内网的服务能被 ...

  7. 搭建解析内网 linux_Linux 搭建ngrok内网穿透

    准备工作,需要有一台公网IP的服务器用来部署内网穿透的服务端 1.下载源码到GOPATH工作目录的src文件目录下 我的GOPATH是 /root/go/src/ cd /root/go/src/gi ...

  8. 如何让你的本地上的项目不用部署到服务器也能让外网看到?使用ngrok内网穿透实现

    目录 前言 一.准备工作 二.安装ngrok运行环境 (liunx) 三.安装ngrok (liunx) 四.配置ngrok (liunx) 五.生成客户端和服务端并运行ngrok (liunx) 六 ...

  9. 如何通过外网(互联网)访问本地计算机里的网站?Ngrok(内网穿透)帮你解决!

    文章目录 1.了解一些内容 2. 注册和登录ngrok 3.免费购买一个域名 4.下载ngrok服务 完成互联网访问本地网站 5. 测试 互联网访问本地机 很多人喜欢搭建自己的网页,但是在本地搭建成功 ...

最新文章

  1. DataGrid列操作
  2. 史上最伟大的五位计算机罪犯
  3. MySQL索引背后的数据结构及算法原理--转
  4. 怎么用cmd关闭系统弹窗_SD卡受损怎么修复?教你一招三步搞定
  5. 38 | 案例篇:怎么使用 tcpdump 和 Wireshark 分析网络流量?
  6. Android 关闭软键盘
  7. MySQL5.5编译方式安装实战
  8. 修改linux默认启动级别(包括Ubuntu)
  9. 前端学习(2122):项目演示
  10. java线程池,信号量使用demo
  11. 使用mysql索引的规则
  12. 2019 开源安全报告:开发者安全技能短板明显,热门项目成漏洞重灾区!
  13. oracle 01157,Oracle数据库启动时出现ORA-01157和ORA-01110问题
  14. 弹出式气泡,使用winAPI
  15. 使用HTML语言和CSS开发商业站点_利用CSS3制作网页动画
  16. kpi绩效考核流程图_KPI绩效考核的步骤
  17. 什么是软路由和硬路由,两者的区别有什么?
  18. 微信消息收发与微信内部emoji表情转义
  19. mysql spring lobhandler_Spring让LOB数据操作变得简单易行
  20. allegro ARTWORK设置笔记

热门文章

  1. Problem D: 梯田AGAIN
  2. Mybatis常见报错
  3. php dtu数据,4G DTU无线物联网数据传输终端
  4. k8s平台搭建,dashboard图形化管理,纯实例
  5. 视频直播服务器SRS的搭建
  6. TreeSet利用比较器排序
  7. 基于视觉语义信息的建图与定位综述
  8. android 文本渐变显示
  9. pdf怎么转换为word文档?简单三步搞定pdf转word
  10. 电脑上怎么压缩jpg图片?什么软件压缩图片好用?