内网穿透的话题总是有一个前置条件,就是公网 IP。相信大多数讨论穿透的都是未能有公网 IP 的情况,本文简要概述一下为什么我们会需要内网穿透,内网穿透的工作原理,如何选择合适的方案穿透。

公网 IP 的重要性

大部分人会接触到内网穿透,可能跟近些年家中 NAS 设备的普及有一定关系,当然,也有一些人有远程操作电脑的需求。但无论是哪种需求,都至少要存在一个公网 IP,这个 IP 可以是你自家的宽带,也可以是一台拥有公网 IP 的服务器。

现在最常见的的场景,就是我们通过一个设备,去访问另外一个内网设备。像是两个人要在茫茫人海建立一种连接,但是至少,两个人要同时去到一个约定好的地方,才可能相见。可以是你家,可以是我家,也可以是一个公共的大家都知道的地方。公网 IP 就等同于这个约定好相见的地方,因为它是互联网上的门牌号,有了这个,才有机会找到彼此。

这种 IP,有固定不变的,就像服务器那种。也有像家庭宽带中每次重新拨号都会变化一次的,而这种来回变化的 IP 还需要一个域名,将域名始终指向那个变化后了的 IP,就像无论你换哪个手机号,我还是能通过那个微信 ID 找到你。

image.png
无论 IP 怎么变,我们都可以通过域名访问

为什么会有内外网之分

由于近些年可联网的设备越来越多,且主要暴露在公网上的基本都是提供服务的公司、服务器等,可用的公网 IP 数量(主要是 IPv4)就越来越少,运营商就想了一个办法,把那些用不上公网 IP 的普通家庭宽带用户,划分到一个大的内网中,然后多家用户共用一个外网 IP,暂时解决了 IP 不够用的情况。

image.png

这些被拿走公网 IP 的用户就像从独栋别墅搬进了高层社区,而公网 IP 挂在了小区门口,被众业主共用,运营商称作:保护用户隐私。在家庭电脑直接通过连接猫设备拨号上网,而不通过路由器的年代,这的确在一定程度上守护了个人的系统安全,但收回公网 IP 的操作其实发生在路由器普及之后。

当然,直到现在,其实还是有大量的用户是用不到公网 IP 的,且是占大多数的。因此并没有产生什么实质的影响,但是对于需要使用公网的用户,比如一些家庭服务器爱好者,要将一些服务放在公网上供私人使用,就会用到内网穿透。

注意,无论有无公网 IP,均会用到内网穿透的技术,有公网的需要穿透自家路由器,进入某个具体的内网设备,但因为自己拥有路由器的控制权,所以多数人遇到的问题是需要穿透公共的大型内网,就是之前提到的小区大门,普通用户是没有小区大门完整控制权的。

具体哪些场景需要内网穿透

举几个常见的例子:

  • 在外希望随时随地能够远程访问家中电脑或者访问 NAS 中文件之类;
  • 自己在家里有一台服务器,部署了一些比如笔记应用、密码管理应用之类;
  • 搭建了一些经典游戏私服,希望跟朋友一起线上游玩之类。

当然内网穿透的需求远不止这些,尤其对那些善于折腾的人来说。但总体上来说,共同点通常是都会有一个 24 小时待机的硬件设备在工作,而我们希望的就是随时随地能够访问到这台设备。

内网穿透的工作原理

前边提到,内网穿透必然用到公网 IP,因此,要么被访问设备有公网 IP,要么两台都没有。两台都没有的情况下,就会用到拥有公网的中转服务器,同时与两台内网设备建立链接,作为一个传话筒,交换双方的流量。

第一种情况,你要访问的对象是有公网的,你可以很方便在互联网上定位到它,然后它作为入口,通过 VPN 或者是端口转发到具体内网服务的方式,让你与内部的某台设备建立连接。

image.png
有公网 IP

第二种情况是没有公网 IP 的,

image.png
没有公网 IP

而像一些商业版的 NAS,内置的系统都自带了第二种方案,因此你发现无须自己部署复杂的内网穿透方案,也可以直接访问到 NAS 中的文件。但是,网络流量的传输存在一个木桶效应,传输速度取决于最慢的那个节点的上限。因此,通过中转服务器的方式进行内网穿透,就对服务器的带宽有要求,而最理想的,就是没有中转服务器的穿透方式。

如何选择穿透方案

在相对落后一些的中小城市,IPv4 的数量其实没有那么紧张,因此可以通过给宽带运营商打电话的方式,询问自己家的宽带是否是公网 IP,如不是则要求对方为自己开启公网 IP。如此网络上通篇的免费解决方案,都可以轻松实现且效果最好。

如果公网 IP 的问题无法解决,那么作为普通用户大概有以下两种方式可利用:

  • 租赁一台拥有外网的服务器作为中转,配置选择相对轻量的,主要是带宽决定了传输速度,至于软件的部署方案随便找一些开源的即可。这种方式适合有技术有折腾能力的,自由度高,能够通过不同的软件实现多种穿透方式。
  • 使用网络上现有的收费或免费的穿透软件,其实一样是租服务器,只是租的是第三方已部署好服务的应用套件,一台服务器足以服务多个用户,因此这种方案较为便宜且对用户的技术要求较低,通常是一些小流量的传输,可以满足远程操控电脑、基本的小文件传输等。

除了这些,还有其他相对小众的穿透方案。我没办法一一列举,但是基本的原理就是前边提到的:总要有一个双方都能找到的地方见面。

最后

本文没有深入讨论内网穿透的具体技术方案,或是某些具体的商业应用。仅针对内网穿透这个话题做一些更为前置的解释,部分观点基于个人知识的判断,如有错误,望纠正。

希望对你有帮助。

> 关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀