×

什么是 CGNAT?为什么你有公网 IP 却不能做端口映射,以及 100.64.0.0/10 到底代表什么

很多用户第一次遇到 CGNAT,通常不是因为看到了“Carrier-Grade NAT”这几个字,而是因为遇到了一个具体问题:明明路由器里显示了 WAN 地址,外网却连不进来;明明做了端口映射,NAS、监控、游戏主机或自建服务仍然无法从公网访问。还有一些人是在 IP 查询、风控日志或访问分析里发现异常,例如多个账号共享同一个公网 IP、IP 位置不稳定,或者日志里出现了 100.64.x.x 这样的地址。

这些现象经常指向同一个原因:你的运营商正在使用 CGNAT。它不是你家路由器里的普通 NAT,而是部署在运营商网络中的大规模地址转换层。对用户来说,最直观的结果就是:你以为自己直接拥有一个公网 IPv4 出口,实际上你和很多其他用户在共享它

这篇文章从 ipinfo.im 用户最常见的几个真实问题出发,解释 CGNAT 是什么、100.64.0.0/10 为什么经常出现、它和私有地址有什么区别、为什么它会让端口映射失败,以及它对 IP 定位、日志分析和 SEO/风控判断有什么影响。你可以结合 ipinfo.im 的 IP 查询WHOISASNTraceroute 一起交叉验证。

CGNAT 是什么

CGNAT 的全称是 Carrier-Grade NAT,也常被称为 Large Scale NAT。它和家庭路由器里的 NAT 思路相同,但部署位置完全不同。家庭 NAT 是把你家里多台设备的私网地址转换成一个出口地址;CGNAT 则是运营商在自己的网络里,再把很多个用户的地址和连接复用到更少量的公网 IPv4 地址上。

这意味着你的网络可能同时存在两层 NAT:

  1. 第一层是你家路由器,把 192.168.x.x10.x.x.x172.16.x.x - 172.31.x.x 转成路由器上联地址。
  2. 第二层是运营商 CGNAT,再把很多用户的上联地址统一转换成少量真正对外可见的公网 IPv4。

所以很多用户看到“我家路由器 WAN 口拿到了地址”,就默认那是公网地址。实际上,那可能只是运营商为 CGNAT 准备的共享地址空间,并不是可从全球互联网直接路由到你的独占公网地址。

100.64.0.0/10 是什么,为什么它不是普通公网段

100.64.0.0/10 是专门为运营商 CGNAT 场景保留的共享地址空间。它经常出现在家庭宽带、移动网络、无线宽带和部分企业接入链路上。这个地址段最大的误区是:它看起来不像常见私网地址,但它也不是面向开放互联网的普通公网地址

它和 192.168.0.0/1610.0.0.0/8 这些 RFC 1918 私有地址不完全一样。后者主要用于用户或企业内部网络;而 100.64.0.0/10 的设计目标是让运营商在 CPE 到 CGN 之间使用统一的共享地址空间。对最终用户来说,看到这个地址往往意味着:你处在运营商 NAT 后面

地址段常见用途是否通常代表独立公网身份
192.168.0.0/16家庭和办公 LAN 私网
10.0.0.0/8大型私网、企业内网、云网络
172.16.0.0/12私网地址
100.64.0.0/10运营商 CGNAT 共享地址空间
普通公网 IPv4真正对外发布的互联网地址通常是

为什么用了 CGNAT 以后端口映射经常失效

端口映射的前提是:外部互联网打到某个公网 IP 的某个端口后,这个连接能一路准确转发到你自己的路由器,再进入你的内网设备。但在 CGNAT 下,真正对外暴露的公网 IPv4 并不直接属于你,而是被多个用户共享。运营商 NAT 层默认只跟踪“谁先发起了连接”,并不默认把外网的入站请求分配给某个具体用户。

这就是为什么你在家里路由器上把 443338925565 或 NAS 端口都映射好了,外网仍然连不进来。问题不一定在你家路由器,而是外部流量根本过不了运营商那一层。

提示:如果你在路由器里看到的 WAN 地址和访问 ipinfo.im 首页看到的“当前公网 IP”不是同一个地址,尤其是 WAN 地址落在 100.64.0.0/10,那基本就要优先怀疑 CGNAT。

如何判断自己是不是在 CGNAT 后面

最实用的办法不是看运营商套餐宣传,而是直接做三步核对:

  1. 查看路由器 WAN / Internet 页面上的上联 IPv4 地址。
  2. 访问 ipinfo.im,查看网站看到的当前公网 IPv4。
  3. 比较两者是否一致,并确认路由器 WAN 地址是否落在 100.64.0.0/10、RFC 1918 私网,或其他明显非公网范围。
# 在电脑上查看本机默认网关和本地地址(Windows)
ipconfig

# 在 Linux / macOS 上查看本地地址
ip addr

# 关键不是本机地址,而是:
# 1. 路由器 WAN 地址是什么
# 2. ipinfo.im 显示的公网 IP 是什么
# 3. 两者是否一致

如果你路由器 WAN 地址是 100.72.15.8,但 ipinfo.im 显示你的公网 IP 是另一个看起来完全不同的地址,例如 203.0.113.45,那就说明在你和公网之间还有一层运营商 NAT。此时你通常不具备独占的入站公网能力。

CGNAT 为什么会影响 IP 日志、风控和账号关联判断

在很多网站、SaaS 平台和风控系统里,公网 IP 往往被当作“用户来源”的一部分线索。但在 CGNAT 场景下,一个公网 IPv4 可能同时被很多终端、很多家庭,甚至很多完全不相关的用户共享。于是下面这些现象都会变得常见:

  • 多个账号看起来来自同一个公网 IP,但并不代表是同一个人或同一个家庭。
  • 对某个公网 IP 做封禁,可能会误伤一批无关用户。
  • 登录风险判断里,“同 IP 多账号”这个信号会明显变弱。
  • 攻击溯源或滥用追踪时,如果只有公网 IP,没有精确时间和端口信息,定位能力会下降。

这也是为什么很多面向审计或安全分析的场景,不能只记录“源公网 IP”,还需要记录精确时间戳、源端口、代理层头部、ASN、UA 和会话上下文。仅凭一个共享公网 IPv4,往往不足以稳定区分具体用户。

为什么 CGNAT 会让 IP 归属地看起来“不准”

CGNAT 不一定直接导致地理库错误,但它会让“公网出口不代表个人真实位置”这个问题更明显。因为运营商可能把许多用户流量集中到更上层的出口节点统一对外发布,这个出口可能在省会、骨干节点城市,甚至在另一个区域。

所以用户人在 A 市,ipinfo.im 或其他 IP 定位工具看到的却是 B 市,并不罕见。对家庭宽带来说,这通常反映的是运营商出口;对移动网络来说,这种偏差往往更大,因为移动网络更常见共享公网和集中式出口。更详细的偏差原因,你也可以继续看站内这篇:为什么 IP 位置和真实位置不一致

CGNAT 对远程办公、自建服务和 P2P 应用有什么实际影响

对普通网页浏览来说,CGNAT 往往是“无感”的,因为大多数流量都是用户主动向外发起连接。但下面这些场景更容易受影响:

  • 家用 NAS、监控摄像头、软路由后台、自建博客或 API,希望从公网直接回连。
  • 远程桌面、游戏主机联机、某些依赖直连的 P2P 应用。
  • 需要从外部主动探测或回调到本地网络的服务。
  • 依赖稳定独占公网 IPv4 做白名单、回源或设备绑定的业务。

在这些场景里,CGNAT 的典型副作用是:无法稳定接收入站连接、打洞成功率下降、端口映射形同虚设、某些应用只能退回中继模式,导致额外时延和更复杂的排障过程。

如果你的网站或系统看到的是共享公网 IP,应该怎么解读

对站点运营、SEO、本地化和分析系统来说,更稳妥的解读方式不是“这个 IP 就等于这个人”,而是:这个请求当前经由某个运营商或网络出口对外访问。因此:

  • 不要把 IP 城市名直接当成用户精确位置。
  • 不要把“同一个公网 IP”直接当成强账号关联证据。
  • 地区跳转、多语言分发或广告投放规则,尽量留出容错,不要强依赖单一 IP 判断。
  • 结合 ASN、网络类型、历史行为和其他信号一起分析,而不是只看一个 IP 标签。

这对 SEO 也有现实意义。很多站点试图根据 IP 自动跳转地区页面,但 CGNAT、移动网络出口和企业网关会让这个逻辑出现误伤。如果地域跳转过于激进,搜索引擎抓取和真实用户体验都可能受到影响。更稳妥的做法通常是提供显式语言/地区切换,并把 IP 结果作为弱提示而不是硬规则。

如果你确实需要公网入站能力,有哪些解决思路

如果你的目标是让家庭或小型办公网络可以被公网主动访问,CGNAT 往往不会靠“再调一下路由器”自行解决。更现实的方案通常是以下几类:

  1. 向运营商申请独立公网 IPv4,或更换支持公网地址的套餐。
  2. 改用 IPv6 入站访问,并确保对端网络和应用链路也支持 IPv6。
  3. 使用带有中继或反向隧道能力的远程访问方案。
  4. 把服务直接部署在具备固定公网 IP 的云主机或边缘节点上。

如果你只是想排查“为什么外网连不进来”,先做的不是反复改端口映射,而是先确认你是否处在 CGNAT 后面。否则你会把大量时间花在错误层级上。

和普通家庭 NAT 的区别,最容易混淆的点是什么

最容易混淆的一点是:很多人知道“家里路由器做 NAT 很正常”,于是自然认为“那我做端口映射就行了”。问题在于家庭 NAT 你自己能控制,而运营商 CGNAT 你通常控制不了。家庭 NAT 只要外面有一个真正属于你的公网 IPv4,理论上就还能通过端口映射接收入站连接;CGNAT 则会把这个前提拿走。

换句话说,家庭 NAT 主要是局域网到互联网之间的转换问题;CGNAT 则把“你是否真正拥有一个可独占的公网入口”这个问题也改掉了。

结论

如果你发现路由器里有 WAN 地址,但端口映射怎么都不生效;如果你在日志、风控或定位分析里反复看到共享公网 IP 带来的歧义;如果你的上联地址落在 100.64.0.0/10,那么最值得优先检查的就是 CGNAT。

CGNAT 的本质不是“网坏了”,而是 IPv4 地址紧张下的一种运营商共享机制。 它对普通网页访问影响不一定明显,但会显著改变端口映射、远程访问、账号关联、日志追踪和地理位置判断的含义。理解这件事之后,你会更容易判断一个 IP 结果到底代表什么,也更容易在 ipinfo.im 上把“看到的地址”解释到正确的网络层级。

参考资料