内网:也叫做局域网,通常指单一的网络环境。例如你家里的路由器网络、网吧、公司网络、学校网络。网络大小不定,内网中的主机可以互联互通,但是越出这个局域网访问,就无法访问该网络中的主机。
公网:就是互联网,其实也可以看做一个扩大版的内网,比如叫城际网,省域网,国网。有单独的公网IP,任何其它地址可以访问网络的可以直接访问该IP,从而实现服务。为什么要内网穿透
内网IP无法直接被访问,所以此时需求此时网络如下,如此外部用户就能访问到内网服务器的数据,此时内网穿透客户端及服务端是保持长连接以方便进行推送,本质上是长链接在转发数据而实现穿透功能
- 内网服务器
- 公网服务器,有公网IP
wmproxy一款简单易用的内网穿透工具,简单示例如下:客户端相关
在本地的8080端口上启动了一个简单的http文件服务器
此时,8001的端口是http内网穿透通过服务端映射到客户端,并指向到8080端口,此时若访问http://127.0.0.1:8001则会显示
http映射是根据域名做映射此时我们的域名是127.0.0.1,所以直接返回404无法访问我们就可以判定我们的内网转发成功了。
此时若访问http://localhost:8001,结果如下
tcp就是在该端口上的流量无条件转发到另一个端口上,此时我们可以预测tcp映射与域名无关,我们在8002上转发到了8080上,此时我们访问http://127.0.0.1:8002和http://localhost:8002都可以得到一样的结果此时tcp转发成功
因为TLS连接与协议无关,只要把普通的TCP转成TLS,剩下的均和普通连接一样处理即可,那么,此时我们只需要处理TCP和HTTP的请求转发即可。监听
在http里面需要预处理相关的头文件消息,
以下为部分代码,后续将进行比较正规的HTTP服务,以适应HTTP2
tcp处理相对比较简单,因为我们无法确定协议里是哪个类型的源码,所以对我们来说,就是单纯的把接收的数据完全转发到新的端口里。以下是部分源码
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |