一、内网穿透解析
1、为什么使用内网穿透
正常上网的访问流程是比如 手机看视频:
手机向视频网站发送请求,然后数据网站收到你的这个请求再将将数据包发送给手机
这个过程我们手机和网站都是有一个独立的ip地址来定位,才能互相访问
但是当前IPV4地址只有32位,最多只有42.9亿个地址,还要去掉保留地址、组播地址,能用的地址只有36亿左右,但是当下有数以万亿的主机,没有这么多IP地址怎么办,运营商提出了两种方案:NAT和IPV6
1.1 单层NAT
运营商给你家路由器分配了一个公网ip,路由器在给你连接这个路由器的设备分配内网ip(内网ip一般都是下面这些网段中的)
内网保留地址:
NAT实现内外网ip地址的转换
当你的手机想要在B站看一个视频时,首先带上ip和端口发送请求到路由器,每台设备(ip)都有65536个端口,路由器会在后台将请求设备的ip改成自己的公网ip,端口改成随机的空闲端口,发送到B站服务器的80端口,然后B站服务器再将视频发送给请求的路由器ip及端口,路由器再根据之前的信息将视频转发给请求的手机ip及端口,这样就进行了一次完整的通信,手机就能播放视频了
1.2 端口转发
这样还有个问题,当公网想要访问你手机中的视频时,因为路由器中没有请求信息所以就永远不可能访问到:
例:当你在公网中想要访问公司的电脑远程桌面192.168.1.2:3389时,肯定是连不通的,这个时候当我在公司路由器后面设置了端口转发到3389(即所有公网请求公司的公网ip:3389端口都转发到你电脑ip192.168.1.2:3389上面)这样就能正常通信了
1.3 多层NAT
每家一个公网ip,地址也不够分,于是运营商进行了多层NAT,整个小区,多个小区使用一个公网ip
即手机发送请求到家中路由器进行转换后再发送到小区路由器进行转换再到视频网站
这样由于我们没有运营商的路由器操作权限,我们就没办法去做端口转发,所以外网就不能访问我们家中的设备,于是就衍生出来了内网穿透
2.内网穿透
内网穿透,又称为NAT穿透。NAT背后的设备,它们的主要特点是 ,可以访问外网,但不能被外网设备有效访问。基于这一特点,NAT穿透技术是让NAT背后的设备,先访问指定的外网服务器,由指定的外网服务器搭建桥梁,打通内、外网设备的访问通道,实现外网设备访问到内网设备。
内网穿透的原理主要是利用中间服务器进行数据传输,将内网计算机的数据通过中间服务器传输到外网
内网穿透实现技术有很多,比如FRP,向日葵,zerotier
2.1 缺点
依赖中转服务器。内网穿透通常需要一个中转服务器来作为内网和外网的桥梁,如果中转服务器出现故障或网络不稳定,会影响穿透效果。
中转服务器一般都是收费的