一、先理解 NAT 在做什么
家庭宽带只有一条公网线路,却要带手机、电视、电脑一堆设备长期在线,靠的就是 NAT(网络地址转换):把内网的私有地址映射成公网地址 + 端口,把内网设备藏在后面。
关键在于,NAT 设备其实管两件独立的事:
- 映射(Mapping):内网某个「IP + 端口」发出去的包,被换成了公网上的哪个「IP + 端口」。这个映射是内网端口独占一个公网端口,还是把所有内网端口都塞到同一个公网端口上?
- 过滤(Filtering):外面有包想进来,NAT 放不放行?是完全不设防,还是要求你之前主动连过那个 IP,甚至必须连过那个 IP 和 那个端口?
两个维度各自有几种行为,组合起来就是大家常说的 NAT1 到 NAT4。所以「NAT 类型」不是厂商自定义的名词,而是有明确技术定义、可以用 STUN 探测出来的。
二、四种类型对照表
| 类型 | 中文 | 映射行为 | 过滤行为 | 典型影响 |
|---|---|---|---|---|
| NAT1 | 全锥形 Full Cone |
内网端口固定映射到一个公网端口 | 不限制来源,任何外部主机都能主动连进来 | 打洞最顺,PCDN 收益最高,联机几乎不挑对端 |
| NAT2 | IP 限制型 Restricted Cone |
同上,端口稳定 | 只有你主动连过的 IP 才能回连(端口不限) | 绝大多数联机场景可用,属「正常」水平 |
| NAT3 | 端口限制型 Port Restricted Cone |
同上,端口稳定 | 必须主动连过那个 IP 和 端口才能回连 | 打洞成功率明显下降,PCDN 收益偏低,部分游戏难联机 |
| NAT4 | 对称型 Symmetric |
每访问一个新目的地址就换一个公网端口 | 按「IP + 端口」严格限制 | 双方无法预测对方端口,直连基本不可行,只能靠中继 |
注意一个常见误解:NAT1 不代表网速快。它只说明「外部能主动连进来」,和带宽、延迟是两件事。反过来,NAT4 也不是「网坏了」,只是不适合点对点直连。
三、怎么判定?RFC 3489 的四步法
判定思路非常朴素:找一台公网上的 STUN 服务器,从自己这里发几个 UDP 包,看它怎么回、以及「从哪回」。
- 测试 I:向主服务器发一个普通请求,拿到自己的公网映射地址 A。连这个都收不到,说明 UDP 根本出不去,直接判「UDP 被阻断」。
- 测试 II:请求服务器换一个 IP、换一个端口来回包。能收到 → 说明外部随便哪个地址都能打进来,就是 NAT1。
- 测试 IV:请求服务器只换端口回包。能收到 → 你的 NAT 认 IP 不认端口,是 NAT2;收不到 → NAT3。
- 测试 III:换一台不同 IP 的服务器再问一次映射。如果两次拿到的端口不一样,说明映射随目的地址漂移,是 NAT4。
四步之间存在优先级:先看映射是否漂移(漂移直接判 NAT4),再决定是锥形里的哪一种。这也是为什么有些测试站只测一两步就给出结论,往往会误判。
四、为什么你的 NAT 类型「天生」不太好
同一条宽带测出 NAT3/NAT4,通常不是路由器设置错了,而是链路本来就叠了两层 NAT:
- 运营商侧 CGNAT:公网 IPv4 不够用,很多宽带给的是运营商内网地址,你在自己家怎么设都没用。
- 光猫 + 路由器双重 NAT:光猫拨号一次,路由器再 NAT 一次,两层叠加后过滤条件变得更严。
- 路由器上的「安全防护 / 网络加速」:部分固件会额外做端口限制,等于又加了一层过滤。
想知道自己卡在哪一层、能改哪几项,可以看下一篇:NAT3 怎么提升到 NAT1。
五、测准的前提
这类测试靠 UDP,有几点会影响结果,测之前先确认:
- 用浏览器打开测试页,别用会拦截 WebRTC 的插件或「隐私模式 + 严格防护」;
- 企业网、校园网、部分酒店 WiFi 会直接封掉 UDP,结果只会是「UDP 被阻断」,不代表你家宽带也是这样;
- 手机 4G/5G 和家宽的结果通常不同,那是两套不同的网络,分别测才有意义。