通过NGROK搭建内网穿透隧道
通过NGROK搭建内网穿透隧道
由于上一个实验必须要在无线路由的支持下才能实现,于是我们试用了外部软件的方式。NGROK是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。具体实现过程如下:
在本地配置服务器基本操作同上述路由搭建,在此不做赘述
接下来打开NGROK软件的启动工具
它将会自动为我们本地服务器生成一个域名,我们在外网中就可以直接通过这个域名访问我们本地服务器了。
穿透过程:
1.当服务端接收到连接,就读取映射表,判断接收的端口对应于哪一个客户端,然后向客户端转发数据.
2.客户端收到数据,读取本地映射表,判断对应哪个内网地址,向内网地址发起连接.
3.客户端和内网的服务器建立连接后,向服务端发起一个连接,作为转发通道.
4.服务端读取请求数据,并通过转发通道转发到客户端,客户端读取响应并通过转发通道返回给请求.
这只是一个简单的连接过程,其中还有映射端口的管理,如果是全端口映射还需要动态映射端口,目前只有网络通有这个全端口的功能,对于一些特殊应用,还要修改解析修改转发的数据才能穿透成功.
从上面的流程可以看出ngrok主要是转发tcp的数据,所以一般的ngrok服务器仅仅支持tcp和http的转发,其实实际上是可以加入udp转发的,不过ngrok客户端和服务器之间还是需要用tcp长连接才能穿透内网。