转载:网络工程师波哥
前言 🔖

问题:你给家里的NAS服务器,配上了IP地址,在公司能 连得上吗?
先说结论:连不上,为什么明明配了 , 网络也通 , 可就是访问不了。
为什么明明配了,网络也通,可就是访问不了。那是因为你的设备处在内网里。

什么是内网 🔖
首先我们需要理解网络的基本结构,网络分为局域网和广域网,IP 也分为局域网 IP 和广域网 IP,也叫私有 IP 和公有 IP。

比如我们常见 的 192.168.1.11 就是私有 IP,这个是运行在内网的。

现实当中我们 99% 的网络环境都在内网,想要访问外网就需要做一个 NAT 转换。

那什么是 NAT?🔖
假如我们的内网计算机现在想要访问公网服务器的 HTTP 业务,设备的如图所示,首先,计算机发送一组数据包出来到路由器上,在这些数据的网络层有四个重要的信息,一个是源 IP192.168.1.1,以及原端口 12345 通常会是一个随机端口,另一个是目的 IP10.10.10.10,以及访问的目的服务的端口号 80 端口。
路由器拿到这一组数据时,需要执行 NAT 的源地址转换,把源 IP 与源端口修改一下,将源 IP 改成路由器的公网 IP10.1.1.1,源端口改成 61111 后发送出去。目的 IP 与端口保持不变,服务器收到了数据包,处理完之后进行数据包回复,再把原 IP 作为目标 IP 发送回来。
路由器收到回报会根据内部记录的 NAT 映射表,将目标 IP 和端口再转换为 192.168.1.1 端口 12345,再发送给了内网中对应的计算机,这样一次通信就完成了。

此时路由器内会保存这样的一条映射关系,使得外网的主机可以顺利回包给内网设备。

但是在通常情况下,路由器里没有内网主机的映射关系时,路由器会拒绝外网设备主动向内网发起的链接,也就是我们常说的内网隔离。

它使得我们没有办法从外网直接访问家中的 NAS 服务器。

那么该如何突破这层隔离呢?答案就是内网穿透技术。

内网穿透技术🔖
从字面不难看出,它的核心作用就是穿透内网与外网之间的 NAT 隔离墙,构建一条安全的通信通道,让外网设备可以直接访问到内网中部署的各类服务。

内网穿透的核心原理其实十分简单,既然外网设备无法主动敲门进来,那就让内网设备主动走出去,找一个中间人。这个中间人就是一台拥有公网 IP 的服务器。

- 第 1 步,内网的设备会主动与这台中转服务器建立一条持久的连接通道。
- 第 2 步,当外部的用户需要访问内网服务时,它先去连接这台中转服务器,然后服务器就像一座桥梁,将两边的数据请求和响应进行转发。

这样即使服务部署在没有公网 IP 的内网也能被外网设备远程访问了。
