浏览 6103 次
锁定老帖子 主题:ngrok内网穿透原理分析和实现
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2015-11-05
首先传输协议选择,tcp或者udp,udp协议是被监控的最厉害的协议,因为p2p软件,迅雷,bt,emlue都频繁的使用udp,网络管理员经常会将udp协议禁掉,除了dns的53端口,所以tcp协议是首选. 既然不能在路由器就在公网搭建一个服务器,通过公网服务器帮我们转发数据,ngrok就提供了这样的转发服务器,如果嫌ngrok国外服务器太慢,自己搭建是首选,网络通 http://www.dkys.org 则内置国内穿透服务器,节省了很多功夫. 服务端是接收外部连接的,还需要客户端,将请求转发到内网服务器,为了实时知道有连接进来,客户端要和服务端建立tcp长连接. 穿透过程: 1.当服务端接收到连接,就读取映射表,判断接收的端口对应于哪一个客户端,然后向客户端发送通知. 2.客户端收到通知,读取本地映射表,判断对应哪个内网地址,向内网地址发起连接. 3.客户端和内网的服务器建立连接后,向服务端发起一个连接,作为转发通道. 4.服务端读取请求数据,并通过转发通道转发到客户端,客户端读取响应并通过转发通道返回给请求. 这只是一个简单的连接过程,其中还有映射端口的管理,如果是全端口映射还需要动态映射端口,目前只有网络通有这个全端口的功能,对于一些特殊应用,还要修改解析修改转发的数据才能穿透成功. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2015-12-27
xtunnel开源内网穿透,图形界面,功能更强大
https://github.com/d1sm/xtunnel |
|
返回顶楼 | |