耳语海岸
艾泽拉斯避难谷地

内网穿透系列:原理介绍

一、内网穿透由来

百度搜索 “内网穿透” 你可以得到很多标准答案,比如:内网穿透即NAT(Network Address Translator)穿透,是指计算机在内网(局域网)内使用私有IP地址,在连接外网(互联网)时使用全局IP地址的技术,本文主要介绍原理,实操在后面系列文章将有详细介绍。

(一)NAT的由来

但如果你初次接触的话,肯定会看的一头雾水。说白了,TCP/IP作为当前互联网的基础协议已有快40年,部分规则早已不适用于当前的Internet,其中IP地址短缺问题最为突出,为了解决此问题,最新提出的IPV6 协议将地址空间扩展到128位,极大地增加了IP地址数量,并且在安全性、便捷 性、处理速度等方面都较IPV4有了很大的提高,所以如果你家有了IPV6,且应用/服务支持IPV6访问,则就不必看这篇文章了,后面我会出 IPV6 的教程。

但现在IPV4完全替换成IPV6还需要很漫长的时间,不仅需要设备支持,还需要众多应用/服务支持。IP地址短缺问题还将继续存在,所以在1994年NAT技术首次提出,其核心是将从内网到外网的数据包IP地址全部改为自身的公网IP,使得多台网络设备可共用一个公网IP地址,极大地节约了IP资源,在网络拓扑发生变化时也不需要重新编址,还隐藏了内部的网络结构,网络之外的终端凭数据包只能看到 NAT设备的信息,因此增强了内网的安全性。

(二)NAT的缺点

(1)增加了转发延迟

NAT在转发数据时需修改数据包的IP头部,转换私有地址与公共地址,重新计算校验和,产生的处理时延将增加端到端的网络延迟,且因为无法修改TCP数据部分内部的地址信息,需要传输地址信息的协议如FTP等将无法在有NAT的网络环境中使用。

(2)增加了连接限制

外网设备不能主动连接内部网络。由于大多数NAT 为内网设备分配的都是不能在公网使用的私有IP地址,外网设备即使得到内网设 备的IP地址,也无法传输连接请求包,因此服务器都不能放在具有NAT的网络下,客户端会无法连接。

(3)需要第三方服务器辅助连接

对于端到端连接类型的应用若连接双方均在各自NAT内部网络,而又没有第三方的公网服务器提供给它们做连接辅助,会因为双方的NAT上都没有连接对方的映射条目,导致两个终端均无法主动发起连接。

综上,多台设备共用一个IP地址的方式与设备必须拥有唯一地址这一IP协议的规则所冲突,TCP/IP中许多端到端连接的应用将受到NAT的限制,例如远程访问家庭设备、家庭设备对外公开等基本的网络行为都将无法实现,所以,能够在具有NAT的环境中完成端到端连接的NAT穿透技术由此诞生。当然,如果你有公网 IP 的话,那你就不用看这篇文章了,以后我会出 DDNS 的教程。

二、内网穿透可以做什么

那我们在什么情形下要用到内网穿透呢,我来简单举几个内网穿透的应用场景:

  • 在公司要用到家里电脑,或者在家里需要用到公司的电脑临时办公;
  • 你在家里搭建了一个网站、一个应用或者游戏,需要对外发布,奈何高配置的服务器太贵。

如果你说仅仅想远程控制电脑,收费的就有 TeamViewer、Splashtop、向日葵等。但不建议,除了部署简单外,在网络速度、易用性等方面都不行,而且费用较高。

三、怎么实现内网穿透

内网穿透技术有很多种,有UPnP协议、STUN协议和TURN协议等等。嗯,说多了估计云里雾里的,这里就不赘述了,想了解的可以百度下,目前来说比较流行的有 FRP、Ngrok、NPS 、Zerotier和Tailscale等等。

后续会陆续实操讲解,敬请期待。

赞(2) 打赏
未经允许不得转载:GSWXY » 内网穿透系列:原理介绍

评论 2

评论前必须登录!

立即登录   注册

  1. #1

    再阅读此文之前我仅仅只知道一个Zerotier

    emondora1年前 (2023-03-31)
  2. #2

    学习了,以前知道有一个花生壳,应该也是这个原理的吧。

    phonz1年前 (2023-04-02)

耳语海岸

WLK版本,定位于RP服务器,趣味养老,请注意:本服仅为技术交流和学习使用,欢迎广泛传播,不作为商业用途。

①群已满加入②群

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫