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

约 4 分钟读完 3 次阅读

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.x10.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 联机、自建服务对外访问。

在线客服
正在加载...