NAT原理是什么?四种NAT类型对游戏联机的影响

约 4 分钟读完 32 次阅读

NAT原理说穿了只有一句话:你家里十几个设备共用一个公网 IP,靠的就是它。路由器在中间做地址转换,出去的时候把内网地址换成公网地址,回来的时候再换回去。

这套机制解决了 IPv4 地址不够用的问题,但也带来一个副作用——外面的人没法主动连进来。游戏联机、语音通话、P2P 传输遇到的绝大多数"连不上对方",根源都在这里。

转换表是怎么工作的

路由器内部维护一张表,记录着"内网某设备的某端口"对应"公网 IP 的某端口"。

你的电脑用 192.168.1.5:50000 发出一个包,路由器把它改成 公网IP:60000 再发出去,同时在表里记一笔。对方回包到 公网IP:60000,路由器查表,知道该转回 192.168.1.5:50000。

关键在于:这个映射是你先发包才建立的。没有这条记录时,外面发来的包路由器不知道该给谁,只能丢掉。

四种 NAT 类型,宽松程度递减

差别在于路由器对"回包"的审查有多严:

类型建立映射后,谁能发包进来打洞难度
全锥型(Full Cone)任何人,只要知道那个公网端口最容易
受限锥型(Restricted Cone)只有你曾发过包的那个 IP容易
端口受限锥型(Port Restricted)只有你曾发过包的那个 IP + 端口较难
对称型(Symmetric)同上,且每个目标分配不同的公网端口极难

对称型最难的原因值得单独说。前三种里,你对外的公网端口是固定的,所以可以通过第三方服务器告诉对方"来连我的 60000 端口"。对称型每连一个新目标就换一个端口,第三方告诉对方的那个端口号,等对方真来连时已经失效了。

游戏机把这套叫法简化了。PlayStation 的 NAT 类型 1/2/3,Xbox 的开放/中等/严格,大致对应宽松到严格。

怎么查自己是哪一种

游戏主机自带检测:PS 在网络设置里测试网络连接,结果会直接显示 NAT 类型;Xbox 在网络设置里看 NAT 类型。

电脑上可以用支持 STUN 检测的工具,原理是向一台公网服务器发包,观察映射规律来反推类型。

最简单的判断:如果你家宽带的公网 IP 和路由器 WAN 口显示的 IP 不一致,比如 WAN 口是 100.64.x.x 或 10.x.x.x 开头,那你根本没有公网 IP,走的是运营商级 NAT。

运营商级 NAT 是另一回事

CGNAT 是指运营商在你和公网之间又做了一层 NAT,成百上千个用户共用一个公网 IP。

这种情况下你怎么设置路由器都没用,端口转发、UPnP、DMZ 全部失效,因为真正做转换的设备不在你家里。国内很多宽带默认就是这样,尤其是后装的和移动网络。

唯一的解法是打电话给运营商要公网 IP,有些地区给,有些不给。

挂代理之后 NAT 会变好吗?通常更差

这是最需要纠正的一个误区。

很多人以为"网络问题挂个代理就好了",但对 P2P 联机来说,走代理往往让打洞变得更难:

  • 你的流量从代理服务器出去,对方看到的是服务器的 IP 和端口
  • 代理服务器同时服务很多人,对外的端口分配通常是动态的,行为接近对称型 NAT
  • 更麻烦的是,打洞需要双方直连,而代理天然是中转结构

结果就是:原本 NAT 类型不错、能直连的人,挂上全局代理反而组不上队。

这不代表代理对游戏没用。它对客户端到游戏服务器那条链路是有效的,能改善延迟和丢包。但玩家之间的 P2P 连接是另一回事,代理帮不上忙,还可能添乱。

所以判断很简单:卡的是和服务器之间的延迟,代理有用;连不上队友、语音不通,那是 NAT 问题,要从路由器和运营商那边解决。 这两类问题的区分方法可以参考VPN vs 加速器:卡慢怎么选,选线路的思路见游戏经常卡顿,VPN怎么选择。

能改善 NAT 类型的几个办法

按有效性排序:

  1. 要公网 IP 是根本解法,其余都是在有公网 IP 的前提下才成立
  2. 开 UPnP,让游戏自己去路由器申请端口映射。大多数路由器默认关着
  3. 手动端口转发,把游戏需要的端口固定映射到你的设备
  4. DMZ 主机,把某台设备完全暴露出去。有效但有安全风险,不建议长期开

常见问题

NAT 类型严格会让网速变慢吗?

不会。NAT 类型影响的是"能不能建立直连",跟带宽和延迟没有直接关系。下载慢是另一套原因,别往这上面归因。

为什么改了路由器设置还是严格类型?

八成是运营商级 NAT。你的路由器 WAN 口如果拿到的是 100.64.x.x 这类地址,那它上面还有一层 NAT,你在自己路由器上做的任何设置都到不了那一层。

开 UPnP 安全吗?

有一定风险。它允许内网程序自动向路由器申请开放端口,恶意软件同样能用这个机制。家用环境下为了联机开着可以接受,但要确保内网设备都是可信的。

NAT 和代理有什么区别?

NAT 是地址转换,解决的是多设备共用一个公网 IP,工作在你的路由器上。代理是流量中转,解决的是访问路径问题,工作在一台远端服务器上。两者都会改变对方看到的来源地址,但目的完全不同。

用了代理之后还需要管 NAT 吗?

如果只是访问网站和看视频,不用管,那些都是客户端主动发起的连接。只有需要别人主动连你的场景才涉及 NAT,比如 P2P 联机、自建服务对外访问。

在线客服
正在加载...