一、先理解 NAT 在做什么

家庭宽带只有一条公网线路,却要带手机、电视、电脑一堆设备长期在线,靠的就是 NAT(网络地址转换):把内网的私有地址映射成公网地址 + 端口,把内网设备藏在后面。

关键在于,NAT 设备其实管两件独立的事:

两个维度各自有几种行为,组合起来就是大家常说的 NAT1 到 NAT4。所以「NAT 类型」不是厂商自定义的名词,而是有明确技术定义、可以用 STUN 探测出来的。

二、四种类型对照表

类型中文映射行为过滤行为典型影响
NAT1全锥形
Full Cone
内网端口固定映射到一个公网端口 不限制来源,任何外部主机都能主动连进来 打洞最顺,PCDN 收益最高,联机几乎不挑对端
NAT2IP 限制型
Restricted Cone
同上,端口稳定 只有你主动连过的 IP 才能回连(端口不限) 绝大多数联机场景可用,属「正常」水平
NAT3端口限制型
Port Restricted Cone
同上,端口稳定 必须主动连过那个 IP 和 端口才能回连 打洞成功率明显下降,PCDN 收益偏低,部分游戏难联机
NAT4对称型
Symmetric
每访问一个新目的地址就换一个公网端口 按「IP + 端口」严格限制 双方无法预测对方端口,直连基本不可行,只能靠中继

注意一个常见误解:NAT1 不代表网速快。它只说明「外部能主动连进来」,和带宽、延迟是两件事。反过来,NAT4 也不是「网坏了」,只是不适合点对点直连。

三、怎么判定?RFC 3489 的四步法

判定思路非常朴素:找一台公网上的 STUN 服务器,从自己这里发几个 UDP 包,看它怎么回、以及「从哪回」。

  1. 测试 I:向主服务器发一个普通请求,拿到自己的公网映射地址 A。连这个都收不到,说明 UDP 根本出不去,直接判「UDP 被阻断」。
  2. 测试 II:请求服务器换一个 IP、换一个端口来回包。能收到 → 说明外部随便哪个地址都能打进来,就是 NAT1。
  3. 测试 IV:请求服务器只换端口回包。能收到 → 你的 NAT 认 IP 不认端口,是 NAT2;收不到 → NAT3。
  4. 测试 III:换一台不同 IP 的服务器再问一次映射。如果两次拿到的端口不一样,说明映射随目的地址漂移,是 NAT4。

四步之间存在优先级:先看映射是否漂移(漂移直接判 NAT4),再决定是锥形里的哪一种。这也是为什么有些测试站只测一两步就给出结论,往往会误判。

四、为什么你的 NAT 类型「天生」不太好

同一条宽带测出 NAT3/NAT4,通常不是路由器设置错了,而是链路本来就叠了两层 NAT:

想知道自己卡在哪一层、能改哪几项,可以看下一篇:NAT3 怎么提升到 NAT1。

五、测准的前提

这类测试靠 UDP,有几点会影响结果,测之前先确认: