1201 字
6 分钟
电脑 NAT 类型测试与 P2P 打洞/联机游戏影响详解
电脑 NAT 类型测试与 P2P 打洞/联机游戏影响详解
在进行 P2P 联机游戏(如Minecraft、《幻兽帕鲁》等)、搭建异地组网(如 Tailscale、ZeroTier)、或是玩组网异地访问时,你一定经常听到 NAT 类型 这个词。
为什么有时候联机总是失败?为什么有些人的异地组网可以直连,而你的只能走慢吞吞的服务器中转?这都跟你的 NAT 类型 息息相关。
一、 什么是 NAT 类型?(四种分类)
NAT(网络地址转换)是将你的局域网私网 IP(如 192.168.1.100)转换成公网 IP 的技术。根据限制严格程度,NAT 通常分为以下四种类型(依据传统 RFC 3489 定义):
| NAT 类型 | 英文名称 | 俗称 / 游戏对应 | 解释说明 |
|---|---|---|---|
| NAT 1 | Full Cone NAT | 全锥型 (Open) | 只要内网设备发过一次包,外网任何 IP 的任何端口都可以通过映射的公网端口直接访问你。最适合打洞与联机。 |
| NAT 2 | Address Restricted | IP限制锥型 (Moderate) | 只有你主动发送过包的外部 IP(不限制端口)才能通过映射端口访问你。 |
| NAT 3 | Port Restricted | 端口限制锥型 (Strict) | 只有你主动发送过包的外部 IP 和特定端口才能访问你。大部分家用路由器默认如此。 |
| NAT 4 | Symmetric NAT | 对称型 (Symmetric) | 每次向不同的外网目的地发包,路由器都会分配一个新的公网端口。打洞的噩梦,几乎无法直连。 |
二、 NAT 类型对游戏与打洞的影响
联机或者打洞的本质是双方建立 P2P(点对点)直连。如果直连失败,就只能通过中转服务器(如游戏厂商服务器、Tailscale 的 DERP 服务器)进行流量转发,这会导致延迟暴增或限速。
不同 NAT 类型之间的双向连通性规律如下:
- NAT 1 (Full Cone):可以与任何 NAT 类型(包括 NAT 4)成功建立 P2P 直连。
- NAT 2 / NAT 3:可以与 NAT 1、NAT 2、NAT 3 成功打洞直连;但如果双方都是 NAT 3,打洞成功率会有所降低。
- NAT 4 (Symmetric):
- 与 NAT 1:可以直连。
- 与 NAT 2 / 3:打洞极难,取决于打洞协议的端口猜测算法。
- 与 NAT 4:100% 无法直连,必须走中转服务器。
💡 总结:如果你的网络是 NAT 4,你将无法与同样是 NAT 3 或 NAT 4 的玩家/节点直连,联机体验会很差。
三、 如何测试电脑的 NAT 类型?
在 Windows 电脑上,有几种简单的方法可以测试你当前的 NAT 类型。
方法一:使用图形化工具 NatTypeTester (最推荐)
这是一个开源的小工具,能非常精准地测试出你的 NAT 类型:
- 前往 GitHub 下载 NatTypeTester(或者使用 STUN 测试工具)。
- 打开软件,点击 Test 按钮。
- 软件会向多个 STUN 服务器发送测试包,最后输出你的 NAT 类型(例如
Full Cone、Symmetric等)。
方法二:使用 Python 或命令行工具测试
如果你安装了 Python,可以通过以下简单命令快速测试:
pip install pystun3pystun3运行后命令行会输出类似下面的结果:
NAT Type: Full ConeExternal IP: 112.x.x.xExternal Port: 54321四、 如何优化和改善 NAT 类型?
如果你的测试结果是 NAT 3 或 NAT 4,可以通过以下手段进行优化,争取提升到 NAT 1 或 NAT 2:
1. 开启 UPnP(通用即插即用)
- 登录路由器后台,在“高级设置”或“WAN口设置”中找到 UPnP,将其开启。
- UPnP 允许电脑程序(如游戏、BT下载器)自动在路由器上申请端口映射,能有效改善 NAT 限制。
2. 开启 DMZ 主机
- 如果你只在一台电脑上玩游戏,可以在路由器后台将该电脑的内网 IP 设置为 DMZ 主机。
- 这相当于把这台电脑的所有端口完全暴露给公网(等同于把这台电脑置于 NAT 1),但注意这会稍微降低电脑的安全性。
3. 光猫改桥接 + 路由器拨号
- 很多双重 NAT(光猫拨号 + 路由器又拨号一级)会导致 NAT 类型降级为 NAT 4。
- 改为光猫桥接、由路由器进行 PPPoE 拨号,可以减少一层 NAT 转换,直接将 NAT 类型提升至 NAT 1 或 NAT 2。
4. 联系宽带运营商提供“公网 IP”(此方法不推荐,本人于湖北电信申请多次未果)
- 拨打运营商客服电话(如电信 10000),并告知“家里要装监控/NAS,需要公网 IP”。
- 只要客服帮你改成公网 IP,配合路由器拨号和 UPnP,你的 NAT 类型就会瞬间变为 NAT 1 (Full Cone)。
电脑 NAT 类型测试与 P2P 打洞/联机游戏影响详解
https://fuwari.vercel.app/posts/understanding-nat-types-and-p2p-hole-punching/