CGNAT:它是什么,以及为什么VPN用户应该关注它

如果你曾经尝试设置端口转发,却发现无论怎么做都不起作用,CGNAT可能就是原因所在。这是你的ISP在幕后做出的网络决策之一,但它对你使用互联网的方式会产生切实的影响。

什么是CGNAT?

运营商级NAT(也称为大规模NAT或CGN)是互联网服务提供商用来应对IPv4地址日益短缺的一种方法。ISP不再为每位用户分配独立的公共IP地址,而是将一个公共IP同时分配给大量用户。从外部世界的角度来看,数十甚至数百个家庭共享同一个IP地址。

可以将其想象成一栋只有一个街道地址的公寓楼。整栋楼只有这一个公开地址,但内部有数十个独立单元。邮件(互联网流量)被送到楼里,再由内部系统分发到对应的公寓。CGNAT就是这套分发系统——只不过规模更大,发生在ISP层面。

CGNAT的工作原理

大多数家用路由器已经在执行标准NAT,将你的私有本地IP(如192.168.x.x)转换为路由器的公共IP。CGNAT在此之上又增加了一层。你的路由器被分配一个100.64.0.0/10范围内的私有IP(该范围专门为CGNAT保留),ISP自己的系统再将其转换为一个共享的公共IP地址。

因此,数据的传输路径如下:

你的设备 → 家用路由器NAT → ISP的CGNAT系统 → 公共互联网

这种双重NAT的设置正是导致诸多麻烦的根源。你发出的任何请求都能收到响应并路由回来,因为系统会追踪出站连接。但入站连接——从外部发起的连接——却无处落脚。CGNAT系统无法判断哪位用户应该接收一个未经请求的入站请求。

CGNAT对VPN用户的影响

CGNAT会带来若干实际问题,直接影响VPN的性能和功能:

端口转发几乎无法实现。 运行家庭服务器、游戏服务器,或任何需要外部设备主动连接到你的服务,都会被CGNAT阻断。在家用路由器上设置的端口转发规则毫无效果,因为ISP的CGNAT层位于其前端。

点对点连接质量下降。 在CGNAT环境下,BT下载、需要直接点对点连接的游戏以及基于WebRTC的应用都会受到影响。这些技术依赖于从网络外部可访问的能力,而CGNAT恰恰阻断了这一点。

共享IP声誉问题。 由于数百名用户共享同一个公共IP,一旦其中任何人从事垃圾邮件或滥用行为,该IP就可能被列入黑名单。所有共享该IP的用户都将承担后果——网站访问被拦截、出现CAPTCHA验证,或账户被标记。

在家自建VPN服务器被阻断。 如果你想在家自建WireGuardOpenVPN服务器,以便出行时连接回家庭网络,CGNAT会直接阻断所有入站VPN连接。

VPN的帮助及其局限性

使用商业VPN服务可以绕过许多CGNAT带来的麻烦。当你连接到VPN时,你的流量会通过VPN提供商的服务器转发出去,该服务器拥有真实的、可公开路由的IP地址。这绕开了共享IP的问题,恢复了更直接的互联网连接。

一些VPN提供商还提供端口转发功能,允许入站连接通过VPN隧道到达你的设备——从根本上解决了CGNAT制造的问题。如果共享IP声誉问题正在影响你,VPN提供商提供的专属IP地址也是另一种解决方案。

但需要注意的是,除非启用并配置了专属的端口转发功能,否则VPN不会自动修复CGNAT对入站连接的限制。

更宏观的视角

CGNAT的存在根源在于IPv4地址的耗尽。长期解决方案是IPv6——它能为地球上的每一台设备提供足够的唯一地址。许多ISP正在缓慢推进IPv6的部署,但在全面普及之前,CGNAT仍将是一种常见的权宜之计,也是技术用户常见的烦恼来源。