Back to blog. Article language: BN EN ES FR HI ID PT RU UR VI ZH

CGNAT 与 UDP:运营商级 NAT 如何影响实时流量

运营商级 NAT(CGNAT)允许运营商将成千上万的用户置于少量公共 IPv4 地址之后,几乎每个移动 IP 都位于其后。对 UDP 而言这一点至关重要:映射依赖空闲计时器存活,入站连接会失败,通话中途短暂停顿就可能改变你的公共端口。

什么是运营商级 NAT(CGNAT)

什么是 CGNAT?它是由 ISP 或移动运营商而非家庭路由器执行的网络地址转换。它在众多客户之间共享每个公共 IPv4 地址,并从 100.64.0.0/10(RFC 6598 为此目的保留的共享地址空间)中为用户分配地址。

运营商级 NAT 将用户映射到共享公共 IP 的示意图

运营商将每个用户的地址和端口映射到共享的公共 IP

  • 家庭 NAT:一个家庭位于一个公共 IP 之后,端口转发由你掌控。
  • CGNAT:许多用户共享一个公共 IP,任何人都无法进行端口转发。
  • NAT444:宽带场景中路由器转换一次、运营商再转换一次,跨越三个 IPv4 地址域。

手机通常没有中间路由器,因此运营商网关只对其地址进行一次转换。

为什么移动网络依赖 CGNAT

移动运营商采用运营商级 NAT 是因为 IPv4 地址早已耗尽,而手机数量远超运营商拥有的地址。一个公共 IP 可以服务数千名用户,只要每个连接拥有自己的端口。

在搜索框中输入“什么是 CGNAT”的大多数人,真正关心的是地址稀缺问题。许多运营商已为手机提供 IPv6,但任何仍需要 IPv4 的流量都会经过转换器。

出站连接发生了什么变化

在 CGNAT 之后,每个出站连接都从共享地址和运营商选择的端口发出。只有在网关记住该配对期间,回复才能送达,而外部任何人都无法主动向你发起连接。

变化之处为何重要
共享公共 IP远端服务器看到一个共享 IP 后面的众多用户
地址加端口映射会话由运营商的端口分配而非你的设备来标识
会话状态映射是临时的,会过期
无入站路径来自外部的未经请求的连接会被丢弃

CGNAT 的 UDP 问题正源于此:TCP 有明确的打开和关闭信号,而 UDP 没有。

CGNAT 如何处理 UDP 映射

CGNAT 的 UDP 映射由你的第一个出站数据包创建,并在一段静默后被删除。由于没有握手过程可循,仅 NAT 超时就决定了映射的存活时间。

持续流量维持 UDP NAT 映射的示意图

流量使映射保持存活;长时间的静默可能改变公共端口

规范的网关使用端点无关映射(EIM):相同的内部地址和端口对所有目标都保持相同的公共地址和端口。这有助于点对点应用,因为从一个服务器学到的端口可以与其他服务器配合使用。

“NAT UDP 映射计时器的到期时间不得少于两分钟,除非适用 REQ-5a。”

—— RFC 4787,IETF 关于 NAT UDP 行为的最佳现行实践

并非每个网络都遵循该标准,因此应用程序不应依赖两分钟的下限。

为什么入站连接和端口转发不起作用

入站连接失败是因为网关只转发与你的设备创建的映射相匹配的数据包。端口转发需要一个为你保留的公共端口,而在共享地址上,每个端口都属于运营商的池。

  • ✅ 出站请求及其回复
  • ✅ 持续发送流量的已建立会话
  • ❌ 未经请求的入站连接尝试
  • ❌ 在共享地址上进行手动端口转发

端口控制协议(PCP)允许设备向运营商请求映射,但很少有运营商向用户开放。必须接受连接的应用通常依赖外部中继服务器,设备首先连接到该服务器。

CGNAT 如何影响实时流量

实时应用最先触及 CGNAT 的 UDP 限制,因为它们需要稳定的双向传输。映射一旦丢失,会立即表现为音频断续、视频卡顿或不同步。

流量类型CGNAT 影响应对方法
VoIP重新映射后出现单向或缺失音频保活间隔短于 NAT 超时
视频通话路径重新协商期间画面冻结ICE 重启并回退到 TURN
在线游戏延迟尖峰和掉线缩短空闲间隔,快速重连
基于 UDP 的 IPTV暂停后流媒体停滞客户端保活或基于 HTTP 的传输
WebRTC严格的 NAT 上直接对等链路失败直接路径失败时使用 TURN 中继

共享 IP 信誉与速率限制

共享的运营商地址承载着其背后所有人的共同历史。当一名用户行为不当时,速率限制和检查可能会波及该地址上的其他所有人。

大型平台知道哪些地址段属于运营商,通常设置更宽松的阈值,因为封锁一个地址会将许多真实用户拒之门外。繁忙的网关仍会遇到额外的验证码和限速,这是运营商级 NAT 的直接副作用。这也是移动地址池的 IP 信誉变化很快的原因。

如何逐步检查你是否处于 CGNAT 之后

将路由器或手机报告的 WAN 地址与网站看到的公共 IP 进行比较。如果它们不同,且 WAN 地址位于共享或私有范围内,则你的运营商正在对其进行转换。

  1. 查找 WAN 地址。 在宽带上,打开路由器管理页面并记下其 WAN 或互联网 IP。在手机上,在网络设置中查看蜂窝 IP。
  2. 查找公共 IP。 在同一连接上打开任意“我的 IP 是什么”页面。
  3. 进行比较。 地址相同意味着该链路上没有运营商 NAT。
  4. 检查地址范围。 WAN 地址位于 100.64.0.0/10 内指向 CGNAT;移动网络上的 10.x.x.x 地址通常也是。

如果“什么是 CGNAT”这个问题是在端口转发失败后把你引到这里,以上步骤几分钟内就能得出结论。

检查项目处于 CGNAT 之后的预期结果
WAN IP 与公共 IP地址不同
WAN IP 范围100.64.0.0/10,或移动网络上的私有范围
对公共 IP 的入站测试失败,不过防火墙也可能导致此结果

将设备的本地 Wi-Fi 地址与公共 IP 进行比较没有任何意义,因为仅家庭 NAT 就会使它们不同。

移动代理如何在 CGNAT 之上工作

CGNAT 移动代理通过真实的运营商网关发出流量,因此继承了该运营商的 NAT 行为。粘性会话在设定时间内保持一个出口 IP;轮换会话按计划或每个请求切换。

即使是粘性会话也可能在任务中途改变:运营商会重新平衡网关、设备重新连接,或者空闲映射过期。移动代理 适合必须来自运营商 IP 的检查。对于 UDP 密集型工作,请注意许多提供商(包括 Insocks)不在移动地址池上提供 UDP。

如何在移动 IP 上保持会话稳定

移动 IP 上稳定的 CGNAT UDP 会话取决于流量时序和重连逻辑。在映射过期前发送小型数据包,并让应用在公共端口改变时进行恢复。

  • ✅ 将保活间隔保持在预期的最短 NAT 超时之下;WebRTC 使用的 ICE 默认为 15 秒。
  • ✅ 检测到新的公共 IP 或端口时重新注册,而不是等待旧的。
  • ✅ 将会话设计得简短且可恢复。
  • ❌ 等待永远不会到来的入站流量。
  • ❌ 在允许列表或应用逻辑中硬编码一个外部 IP。

💡 在每次重连时记录公共 IP 和端口。该模式会揭示你所在运营商的真实超时时间。

示例:处于静音状态的软电话

一个远程医疗团队发现,移动通话在静音约一分钟后会变得无声。日志显示公共端口在停顿期间发生了变化,因为静音的客户端不发送音频数据包。15 秒的保活和在端口改变时重新注册解决了问题,无需改动网络。

使用 CGNAT 和移动 IP 的常见错误

刚接触 CGNAT 移动代理设置的团队常把移动 IP 当作专用服务器地址。修复应在应用逻辑中进行,而不是在网络中。

错误影响修复
❌ 期望入站连接请求永远无法到达设备设计仅出站的流程或使用中继
❌ UDP 会话中长时间空闲映射在会话中途过期按固定间隔发送保活
❌ 将逻辑绑定到一个外部 IP重新分配时会话中断在代码中处理 IP 和端口变化

何时适合使用移动 IP,何时 ISP 或数据中心更好

当测试必须展示运营商用户看到的内容时选择移动 IP。当你需要长会话、高吞吐量或 UDP 时选择 ISP 或数据中心 IP,因为移动出口总是处于运营商级 NAT 之后。

任务最佳 IP 类型原因
移动广告验证移动展示运营商用户看到的广告
移动网站和应用 QA移动重现真实的运营商网络条件
大规模公共数据采集数据中心或 ISP快速、稳定且单请求成本更低
VoIP 和实时测试ISP延迟可预测、重新映射更少、支持 UDP
长时间监控会话静态 ISP一个地址可用数天

对于长时间会话,请比较 ISP 代理静态代理 套餐。

选择能处理实时流量的代理

对于 CGNAT UDP 工作负载,会话持久性和 UDP 支持比标称速度更重要。检查会话能保持多久、哪些地址池支持 UDP,以及限制是否被清晰地记录在案。

功能好处
粘性会话控制整个测试期间一个出口
支持 UDP 的 SOCKS5VoIP 和游戏流量可通过代理运行
ISP 和静态地址池比移动网关的重新映射更少
移动运营商网络覆盖真实的运营商侧检查
免费演示购买前先测量稳定性

👉 试用演示代理注册获取完整访问权限,或在测试稳定后 购买 UDP 代理

关键要点

CGNAT 的 UDP 行为解释了实时应用在蜂窝网络上遇到的大部分问题。以下是“什么是 CGNAT”及其重要性的简短回答。

  • CGNAT 通过地址和端口映射在众多用户之间共享公共 IPv4 地址。
  • UDP 映射依赖空闲计时器存活,因此停顿可能改变你的公共端口。
  • 入站连接和端口转发在共享的运营商地址上不起作用。
  • 保活和重连逻辑使实时会话保持稳定。
  • 移动代理继承运营商 NAT;ISP 地址池更适合长会话和 UDP。

常见问题

什么是运营商级 NAT?

它是由运营商运行的 NAT,让许多客户共享一个公共 IPv4 地址。

CGNAT 会阻断 UDP 流量吗?

不会,但它会删除空闲的 UDP 映射,因此安静的会话可能会中断。

为什么移动 IP 上入站连接会失败?

网关只转发由你的设备发起的连接的流量。

如何知道我的连接是否使用 CGNAT?

将路由器或手机的 WAN IP 与公共 IP 进行比较;不匹配加上 100.64.0.0/10 或私有的 WAN 地址即指向 CGNAT。

移动代理在 CGNAT 后面能用吗?

可以,它们通过运营商网关出口,并遵循相同的 NAT 规则。

CGNAT 会影响延迟吗?

通常影响很小,不过流量可能经由集中式运营商网关走更长的路径。

使用代理即表示你确认在美国现行法律范围内使用。Insocks 专为在美国的合法使用而设计。更多指南请访问 Insocks 博客

2026-09-17