Windows 内网穿透

本文介绍下内网穿透技术,主要用于公司内网不同局域网以及外网访问内网场景

内网穿透通过使用中间服务器,使得位于内网或防火墙后面的设备能够被外部网络访问。以下是我了解的内网穿透主要流程:

1. 内网设备主动连接到中间服务器:

内网设备通过主动发起与中间服务器的连接,绕过NAT和防火墙的限制。NAT允许内网设备向外部发起连接,因此内网设备可以与中间服务器建立一个持久的连接。

这种连接通常采用TCP协议,确保连接的可靠性和稳定性。

2. 外网设备向中间服务器发出请求:

外部设备通过公共网络访问中间服务器,并向其发出请求,以访问内网中的服务。中间服务器通常通过一个公共IP地址对外提供服务,外部设备可以通过这个地址进行访问。

3. 中间服务器转发请求:

中间服务器接收到外部设备的请求后,将该请求转发给已经与其建立连接的内网设备。

内网设备处理请求后,通过连接返回响应给中间服务器。

4. 中间服务器返回响应:

中间服务器将内网设备的响应数据转发回外部设备,完成整个请求-响应过程。

这种方法有效避开了防火墙和NAT网关的限制,使得内网设备的服务可以安全地暴露给外部网络。

实现内网穿透的一个常见方法是使用第三方库或工具,例如Frpc  示例 | frp

不过内网穿透可能会有失败的情况,比如我当前项目使用的打洞技术,偶尔就会失败,具体原因暂时未知。猜测是以下几个情况:

1. NAT网关限制,NAT设备有很多类型,对称NAT因为要为每个外部目的地分配不同映射端口,导致难以穿透。另外也有NAT设备不支持UDP打洞

2. 网络延迟和超时,因为打洞技术是在短时间内同时发送接收数据包,延迟大或者超时可能导致打洞失败

3. IP以及端口变化,打洞建立成功之后,动态IP场景会导致连接失效

 

参考文章:

CPP在内网穿透技术的思考 - 异地远程联网技术 - 博客园

使用frp配置内网(穿透[保姆级教程])

posted @   唐宋元明清2188  阅读(27)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
哥伦布
06:09发布
哥伦布
06:09发布
7°
南风
4级
空气质量
相对湿度
97%
今天
中雨
-6°/7°
周五
小雪
-7°/0°
周六
雨夹雪
-2°/4°