Ivan's Blog

聊一聊内网穿透

重新搭建的博客,虽然不可能有什么流量,但我还是总是忍不住想看一看百度统计的页面信息。然后我发现受访页面中,访问次数比较多的是这篇: 使用 Surge Ponte 实现便捷的内网穿透

我猜测有人在网络上查询内网穿透的时候,被引流到了这篇文章。

但是,这并不是一篇有价值的文章,也解决不了大多数人的内网穿透需求。因为我所记录的成功使用这个软件的 Surge Ponte 内网穿透功能,首先就有以下几个要求:

  1. 由于 Surge 这个软件只有在 Apple 的生态下才有,所以众多的 Windows 用户是无法使用的;
  2. 家中要有闲置的 MacOS 系统的设备,同时如果多台设备使用,至少要花费近 500 元购买软件的序列号;
  3. 我在文中介绍的方法使用到了端口映射,而端口映射是家中宽带有公网 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 的,且是占绝大多数的。因此并没有产生什么实质的影响,但是对于需要用到的用户,比如一些家庭服务器爱好者,要将一些服务放在公网上供私人使用,就会用到内网穿透。

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

我举几个常见的例子:

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

当然内网穿透的需求远不止这些,尤其对那些善于折腾的人来说。

内网穿透的基本原理

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

第一种情况如图:

image.png

第二种情况如图:

image.png

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

如何选择穿透方案

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

如果公网 IP 的问题无法解决,那么就要看自己内网穿透的用途:

  1. 如果是在商业版的 NAS 上看剧,建议直接使用 NAS 内置的在线文件访问,已经内置了内网穿透,设置好在线视频流的转码标清就行,通常不会卡顿,不要考虑看蓝光原盘了,那种流量需要的带宽价格已经没有性价比了;
  2. 如果是自己折腾的开源 NAS 并没有内置网络穿透,同样是想在外访问 NAS 文件,则可以租赁一台拥有外网的服务器作为中转,配置选择相对轻量的,主要是带宽决定了传输速度,至于软件的部署方案随便找一些开源的即可;
  3. 如果只是希望控制家中的一些电脑,做一些轻量的操作,或者偶尔传输一些文件,我更建议直接使用类似向日葵这种成熟的商业产品,有更高需求则适当付费即可,免于折腾。

我没办法举出所有人对内网穿透的需求点。但是,有公网的就想办法折腾自己家里的服务器(或路由器),没公网的就折腾租来的服务器,不想折腾的,就去使用商业软件,这些是不变的。

#运维 #网络 #服务器

PREV 持续奔跑:从运动废柴到马拉松废柴
NEXT Figma 20240515 更新 - 页面栏支持分割线