内网穿透到底干啥的这里不做详述,这篇文章主要是讲这玩意怎么做的

分析

网上有很多原理图,但是说实话鄙人天资愚钝没咋看懂,在网上疯狂百度和个人的验证之后,得出如下简图

内网穿透有哪些(大白话告诉你内网穿透原理和验证)(1)

其实很简单

想让我们内网的服务能被外网访问到,只需要一个能被公网访问的服务器就行

1. 内网服务器和外网的服务器建立tcp通讯

2. 用户想访问内网服务器时候,需要先请求外网服务器,外网服务器再将请求的数据原样推送给内网的服务器

3. 同理当内网服务器要将数据推送给用户,也是原路返回,先给外网服务器,然后外网服务器在将数据给用户

验证

验证过程其实也非常简单,只需要验证下 内网服务器是不是和外网建立了tcp链接就知道了

这里我用的是`natapp`这个工具是基于 `ngrok`的

启动之后如图所示

内网穿透有哪些(大白话告诉你内网穿透原理和验证)(2)

此时需要知道上文说的外网服务器地址,通过 ping `iup4ue.natappfree.cc` 就知道了

内网穿透有哪些(大白话告诉你内网穿透原理和验证)(3)

这时候打开`wireshark` 抓包

内网穿透有哪些(大白话告诉你内网穿透原理和验证)(4)

ip.dst 是本地内网ip

ip.src 是外网服务器地址

这时候只需要在页面随便访问下

`http://iup4ue.natappfree.cc/asdasdasdas`

此时看 wireshark 应该有如下记录

内网穿透有哪些(大白话告诉你内网穿透原理和验证)(5)

在那一行右键 follow->http stream

可以看下如下

内网穿透有哪些(大白话告诉你内网穿透原理和验证)(6)

这样就证明了,数据是通过tcp通道传输的

,