CGNAT(运营商级 NAT)是运营商在用户路由器之外再做一层地址转换,让多个家庭共享一个公网 IPv4 地址。它对「主动连出」的普通 VPN 客户端影响通常不大,但会让家庭路由器上的端口映射失效,自建 VPN 服务端也无法从外网连入。以 2026 年 9 月看,家庭宽带与蜂窝网络中都常见 CGNAT。
CGNAT 到底是什么
一个可独立引用的定义句:CGNAT(Carrier-Grade NAT,运营商级 NAT)是部署在运营商网络中的大规模地址转换设备,它把大量用户的内部地址转换为少量共享的公网 IPv4 地址。
它的出现源于 IPv4 地址不足。运营商无法再为每个用户分配独占的公网 IPv4 地址,就在自己的网络里给用户分配一个「运营商内部地址」,出网时再统一转换。
为此,RFC 6598 专门划出了一个共享地址段 100.64.0.0/10(100.64.0.0 至 100.127.255.255),供运营商在 CGNAT 内部使用,以免与家庭内网常用的 192.168.x.x、10.x.x.x 冲突。
| 层级 | 地址示例 | 由谁分配 |
|---|---|---|
| 家中设备 | 192.168.1.23 | 家庭路由器 |
| 路由器 WAN 口 | 100.72.x.x 或 10.x.x.x | 运营商(CGNAT 内部) |
| 公网出口 | 共享的公网 IPv4 | 运营商 CGNAT 设备 |
这意味着一个家庭的数据包出网要经过两次地址转换:一次在家庭路由器,一次在运营商 CGNAT。NAT 的基本机制参见 VPN NAT 穿越与打洞。
为什么「别人连不进来」
NAT 默认只放行「内部先发起」的会话回程。单层 NAT 下,你还可以在自家路由器上设置端口映射,把某个外部端口固定转给家里的设备。CGNAT 多了一层你无法控制的设备,映射链条就断了:
| 场景 | 单层 NAT(路由器有公网 IP) | 双层 NAT(上游有 CGNAT) |
|---|---|---|
| 出站访问网站 | 正常 | 正常 |
| 客户端 VPN 连出到节点 | 正常 | 通常正常 |
| 路由器端口映射 | 外网可按映射连入 | 只映射到运营商内网,外网仍连不进 |
| UPnP 自动映射 | 可在路由器上生效 | 只作用于第一层,外层不受控 |
| 家庭自建 VPN 服务端 | 可从外网连入 | 外网无法主动连入 |
| 点对点直连 / 打洞 | 成功率较高 | 成功率下降,更常回落中继 |
一个可独立引用的结论句:在 CGNAT 之后,家庭路由器上的端口映射只能把端口开放到运营商的内部网络,而不能开放到公网。
这也是为什么有人按教程在路由器上配置了端口映射,却发现「别人还是连不进来」:配置本身没错,只是外面还有一层不属于你的 NAT。
对 VPN 的具体影响
客户端连出:通常影响不大
多数个人使用的 VPN 是「你主动连出到远端节点」。出站握手会在两层 NAT 上都建立临时映射,回程可以沿映射回来。CGNAT 在这里的主要影响是:
- 映射超时可能更短:运营商设备为节省资源,可能更早回收空闲的 UDP 映射,表现为空闲后假连接,需要合适的保活间隔,参见 VPN 保活与掉线重连;
- 会话数量可能受限:据部分运营商说明,CGNAT 会给每个用户分配有限的端口或会话数,同时开大量连接时可能出现新连接失败。
自建服务端:外网无法主动连入
如果你想在家里搭一个 VPN 服务端,以便出门在外访问家里的 NAS 或内网设备,CGNAT 会直接挡住这条路:外网的连接请求到达运营商的共享公网地址后,CGNAT 不知道该转给哪个用户。
商业 VPN 的端口转发
商业 VPN 的端口转发是在服务商的出口上保留端口,而不是在你家的 CGNAT 上开端口,所以它不受你本地 CGNAT 影响;但它有自己的隐私与安全取舍,参见 VPN 端口转发是什么。
怎么判断自己在不在 CGNAT 之后
以下方法只读取信息,不修改任何配置:
- 看路由器 WAN 地址:登录家庭路由器管理页面,查看 WAN 口或「互联网」状态中的 IPv4 地址;
- 看公网出口地址:在未连接 VPN 时访问 IP 检测页,记下显示的公网 IPv4;
- 对比两者:
| WAN 口地址 | 与检测页是否一致 | 更可能的情况 |
|---|---|---|
| 公网地址 | 一致 | 没有 CGNAT,路由器直接持有公网 IP |
| 100.64.0.0/10 段 | 不一致 | 典型的 CGNAT |
| 10.x、172.16–31.x、192.168.x 段 | 不一致 | 上游还有一层 NAT(CGNAT 或光猫路由模式) |
| 公网地址 | 不一致 | 较少见,可能是多出口或检测页走了其他路径 |
- 排除光猫双层 NAT:WAN 口是 192.168.x.x 时,也可能是光猫工作在路由模式,而不是运营商 CGNAT。这时应先查看光猫的 WAN 地址,再按上表判断。
测试环境写法示例:2026 年 9 月,家庭宽带,路由器 WAN 口显示 100.7x.x.x,未开 VPN 时检测页显示另一公网 IPv4,据此判断处于 CGNAT 之后。蜂窝网络下手机拿到的地址也常落在 CGNAT 地址段。记录日期与接入类型,不要把单次结果推广为某运营商的普遍情况。
排障方向:需要入站时可以考虑什么
以下是概念层的方向,各自有成本与前提,是否可行取决于你的运营商与用途:
| 方向 | 在做什么 | 需要注意 |
|---|---|---|
| 向运营商咨询公网 IPv4 | 让路由器 WAN 口拿到独占公网地址 | 是否提供、是否收费、办理条件因运营商和地区而异 |
| 使用 IPv6 | 许多网络中设备可获得全局 IPv6 地址,不经过 CGNAT | 运营商与路由器防火墙可能默认阻挡入站;访问端也需有 IPv6 |
| 中继或反向连接 | 家中设备主动连出到一台有公网地址的服务器,由其转发入站 | 多一跳延迟,中继服务器的可信度与安全需自行评估 |
| 点对点组网工具 | 两端尝试打洞,失败时回落中继 | 成功率受两端 NAT 类型影响,不保证直连 |
开放入站连接会扩大设备的暴露面:无论通过哪种方式,被暴露的服务都需要及时更新、使用强认证,并只开放确实需要的端口。本文只做一般性技术说明,不提供规避执法或突破访问控制的操作指导;具体办理与使用应符合当地法规和运营商服务条款。
和共享出口 IP 不是一回事
CGNAT 和商业 VPN 的共享出口都会让「很多人共用一个公网 IP」,但所在位置和影响对象不同:
| 维度 | CGNAT | VPN 共享出口 |
|---|---|---|
| 发生在哪里 | 你的运营商网络 | VPN 服务商的出口节点 |
| 共享者是谁 | 同一运营商、同一区域的用户 | 同一节点的 VPN 用户 |
| 主要影响 | 入站不可达、会话数受限 | IP 信誉、验证码增多 |
| 能否自行改变 | 只能向运营商咨询或改用 IPv6 | 可更换节点或出口类型 |
两者的信誉问题有相似之处:同一 CGNAT 出口下若有其他用户产生异常流量,你也可能遇到验证码或访问限制。共享出口的信誉机制参见 共享出口 IP 与信誉。
常见误解
误解 1:路由器端口映射没生效是配置错了。 如果 WAN 口地址不是公网地址,上游还有一层 NAT,映射本身正确也无法从外网连入。
误解 2:CGNAT 会让 VPN 完全用不了。 主动连出的客户端 VPN 通常可以正常建立;受影响更明显的是需要入站可达的场景。
误解 3:100.64.x.x 是公网地址。 100.64.0.0/10 是 RFC 6598 规定的共享地址空间,只在运营商网络内部使用,不在公网上路由。
误解 4:有 IPv6 就不存在入站问题。 IPv6 可以绕开 IPv4 的 CGNAT,但路由器或运营商的防火墙可能默认阻挡入站,访问方也需要具备 IPv6 连接。IPv6 与 VPN 的关系参见 IPv6 泄漏检测。
核对清单
- 定位:路由器 WAN 地址与检测页公网 IP 是否一致,WAN 地址落在哪个地址段;
- 分层:是否存在光猫路由模式造成的家庭内部双层 NAT;
- 需求:你的问题是「连出不稳定」(查保活与映射超时)还是「外网连不进」(查 CGNAT 与入站方案);
- 证据:记录日期、接入类型(家庭宽带 / 蜂窝网)与地址段,而不是只写「运营商有 NAT」;
- 风险:若决定开放入站,先确认暴露的服务、认证方式与更新策略。
CGNAT 改变的是「谁能主动连到你」,而不是隧道的加密强度或隐私属性。先确认自己处在哪一层 NAT 之后,再决定排查保活、端口映射还是入站方案,可以避免在错误的设备上反复改配置。