你在 IP 查询网站看到的“你的公网 IP”,可能不是只属于你一个人。全球几十亿网民,只有大约 43 亿个 IPv4 地址——早在 2011 年,IANA 就把最后一批 IPv4 地址分配完毕。今天,大多数家庭宽带用户都被运营商塞进了一个叫 CGNAT 的“共享出口”,几十户甚至几百户家庭共用同一个公网 IP。这种“看不见的 NAT”对很多 P2P 和远程访问应用来说,是一个不小的麻烦。

IPv4 地址为什么不够用了

IPv4 设计于 1981 年,当时设计者认为 2^32(约 43 亿)个地址“足够实验用”。他们没想到互联网会以这种速度普及。到 2025 年,全球网民超过 50 亿,物联网设备超过 200 亿,IPv4 地址严重不足。IPv6 是终极解决方案(2^128 个地址,号称能给地球上每一粒沙子分配一个地址),但 IPv6 部署进度缓慢,全球 IPv6 普及率至今不到 50%。

在 IPv6 完全普及之前,运营商必须想办法用仅有的 IPv4 地址服务更多用户。CGNAT(Carrier-Grade NAT,运营商级 NAT)就是这种“挤着用”的典型方案。

CGNAT 是怎么工作的

CGNAT 的原理和你家里路由器的 NAT 几乎一样,只是部署位置从你家搬到了运营商机房。具体来说,运营商给每个用户分配一个私有 IP(通常是 100.64.0.0/10 段的共享地址空间),用户访问互联网时,运营商的 CGNAT 设备把这个私有 IP 翻译成公网 IP,再把响应数据按翻译表送回来。

这种“两层 NAT”(你家路由器 + 运营商 CGNAT)在业界被称为 NAT444——你家里的设备、家里的路由器、运营商的 CGNAT,三个地方都在做 NAT。这导致一个直接后果:你的公网 IP 不是只属于你,而是和几十个甚至几百个邻居共享。

CGNAT 是 IPv4 地址枯竭时代的过渡方案。它让运营商可以少买 IP 地址、多卖宽带,但代价是终结了“每个家庭都有独立公网 IP”的时代。

CGNAT 对 P2P 下载的致命影响

对 P2P 下载来说,CGNAT 是一个严重的问题。BitTorrent、IPFS、WebTorrent 等 P2P 协议都依赖 peer 之间的直接连接——你下载的同时也要让别的 peer 能主动连接你。但在 CGNAT 环境下,外部 peer 看到的是运营商的公网 IP,不知道怎么连到你家的具体设备。

结果是:你下载 BT 种子,速度始终提不上来——因为没人能从外面连接你上传,你能下载的速度完全取决于“主动连你”的少数 peer。这就是为什么 CGNAT 用户经常遇到 BT 下载只有几十 KB/s 的问题。

NAT 穿透:qBittorrent 等工具的挣扎

为了在 CGNAT 环境下改善 P2P 下载,qBittorrent、μTorrent 等现代客户端都实现了 NAT 穿透(NAT Traversal)机制,包括 UPnP、NAT-PMP、UDP hole punching。这些技术可以让客户端在 CGNAT 环境下“猜出”自己被分配的端口,并尝试让其他 peer 通过这个端口连进来。

但这些技术成功率不高——特别是双层 NAT(CGNAT + 家用 NAT)情况下,运营商的 CGNAT 设备通常不响应 UPnP 请求,NAT 穿透基本失败。

游戏联机和远程访问的痛点

CGNAT 还影响主机游戏联机、自建 NAS 远程访问、远程桌面等场景。游戏主机的 P2P 联机需要稳定的入站连接,在 CGNAT 下经常失败。自建 NAS 想从外面访问,必须借助内网穿透工具(如 frp、tailscale、zerotier)。远程桌面、SSH 等场景类似。

tailscale 和 zerotier 这类基于 WireGuard 的 VPN 工具在 CGNAT 时代迅速流行,正是因为它们通过“打洞”或者“中继”绕过了 CGNAT 的限制,让 NAT 后面的设备也能互相连接。

如何判断你处于 CGNAT 之后

几个简单的判断方法。第一,在不同网站上查询你的公网 IP——如果多次查询结果稳定一致,你大概率不在 CGNAT 后面;如果偶尔变化(几分钟或几小时),你可能被 CGNAT。第二,在路由器上查看 WAN IP,和“我的 IP”网站显示的对比——如果两者不同,你至少在一层 NAT 之后(家用路由器 NAT),可能还有 CGNAT。第三,尝试在路由器上做端口映射,然后用外部网络访问——如果不通,大概率是 CGNAT。

现在有专门的工具帮助判断 CGNAT 状态,如 NAT Checker(natchecker.com)。这些工具通过 traceroute 探测你的 IP 是否经过运营商 NAT 设备,准确率较高。

怎么申请独立公网 IP

如果你需要独立公网 IP(用于 P2P 做种、远程访问、自建服务器等),可以联系运营商申请。国内三大运营商通常对个人用户不提供独立 IPv4 公网 IP,但对企业宽带专线和家庭高端套餐可能提供。费用通常在每月几十到几百元。

另一种思路是申请 IPv6 公网地址——三大运营商都已经为家庭宽带分配 IPv6 地址,只是普通用户不知道怎么使用。开启路由器的 IPv6 防火墙(允许入站连接)后,你的设备就拥有独立的 IPv6 公网地址,可以在全球范围内被访问。

IPv6 是 CGNAT 的终极解药

CGNAT 只是 IPv4 地址枯竭时代的临时方案。IPv6 拥有 2^128 个地址,理论上可以为地球上的每一粒沙子分配一个 IP。在这个地址空间下,每个家庭设备都可以拥有独立的公网 IP,运营商再也不需要 CGNAT。

2025 年全球 IPv6 部署率约 45%,中国约 70%,印度超过 80%。随着 5G、物联网、云计算的推进,IPv6 部署率会持续提升。也许 5-10 年后,CGNAT 会成为历史名词。

对企业的影响

对企业来说,CGNAT 也带来合规和安全上的挑战。多个用户共用一个 IP,会让网络犯罪调查、版权侵权追溯、广告投放精准度都变得更困难——一个 IP 上的可疑行为可能牵连到几十个无辜用户。

一些企业为了应对这种问题,开始部署基于 IPv6 的内部网络。中国“雪人计划”(IPv6 根服务器)等项目也在推动 IPv6 的全球部署。

回到下载本身

对一个下载爱好者来说,CGNAT 是你 BT 下载速度慢、IPFS 做种无效、自建 NAS 无法外部访问的根因之一。理解 CGNAT 的存在,可以帮助你选择正确的解决方案——无论是申请独立 IP、开启 IPv6,还是使用 NAT 穿透工具,都能让你的下载体验提升一个台阶。

参考资料