通过NGROK搭建内网穿透隧道

通过NGROK搭建内网穿透隧道

由于上一个实验必须要在无线路由的支持下才能实现,于是我们试用了外部软件的方式。NGROK是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。具体实现过程如下:

 

在本地配置服务器基本操作同上述路由搭建,在此不做赘述

通过NGROK搭建内网穿透隧道

 

 

通过NGROK搭建内网穿透隧道

 

通过NGROK搭建内网穿透隧道

 

 

接下来打开NGROK软件的启动工具

通过NGROK搭建内网穿透隧道

 

 

它将会自动为我们本地服务器生成一个域名,我们在外网中就可以直接通过这个域名访问我们本地服务器了。

通过NGROK搭建内网穿透隧道

 

通过NGROK搭建内网穿透隧道

穿透过程:

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

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

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

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

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

从上面的流程可以看出ngrok主要是转发tcp的数据,所以一般的ngrok服务器仅仅支持tcp和http的转发,其实实际上是可以加入udp转发的,不过ngrok客户端和服务器之间还是需要用tcp长连接才能穿透内网。

 

通过NGROK搭建内网穿透隧道