10 10 月 2026
这是全站最该先读的一篇。90% 的"开服连不上"问题,根因都不在游戏配置,而在这里。

先说结论:NAT 型云服务器没有独立公网 IP,你的服务跑在内网端口上,必须在服务商控制台做一次"端口映射",把内网端口映射到一个外网端口上,朋友才能连进来。

这一步没做,游戏服务端跑得再正常,外面的人也连不上——而游戏控制台还一片正常,看起来毫无异常,所以新手往往排查一整天都找不到原因。


一、三种网络模式的区别

模式独立公网 IP端口情况成本适合谁
独立 IP 云服务器✅ 有所有端口直接可用高商业服、需要任意端口
NAT 型云服务器❌ 无(共享出口 IP)需在控制台映射端口低很多开黑、私人长期服
家庭宽带通常无(多层 NAT)需光猫改桥接 + 路由器转发电费临时玩玩

NAT 型为什么便宜?因为 IPv4 地址本身是稀缺资源,独立 IP 的成本里有一大块是 IP 租用费。NAT 型共享出口 IP,把这部分成本省掉,价格就下来了——而对大多数"和朋友开黑"的场景,你根本用不上独立 IP。


二、NAT 端口映射的工作原理

朋友的游戏客户端
   │  连接  外网IP:外网端口(如 1.2.3.4:28015)
   ▼
服务商 NAT 网关
   │  按映射规则转发
   ▼
你的服务器  内网IP:内网端口(如 10.0.0.5:28015)
   │
   ▼
游戏服务端进程(监听 28015)

关键认知:游戏服务端永远只监听内网端口。它不知道外面映射成了什么。所以:

  • 配置文件里写的端口 = 内网端口
  • 给朋友的地址 = 外网 IP : 外网端口
  • 这两者可以一样,也可以不一样,映射规则说了算

三、实操:控制台配置映射(通用流程)

不同面板叫法不同,但核心字段就这 4 个:

字段填什么说明
内网端口游戏实际监听的端口如帕鲁 8211
外网端口分配给你的公网端口面板自动生成或自定义
协议UDP 还是 TCP游戏服绝大多数是 UDP
备注游戏名方便以后管理

以开《幻兽帕鲁》为例:

  1. 登录服务商控制台 → 找到你的 NAT 服务器 → 端口映射 / 端口转发 页面
  2. 点「添加规则」
  3. 内网端口填 8211,协议选 UDP
  4. 外网端口系统会给一个(比如 38211),记下来
  5. 保存

然后你给朋友的地址就是:外网IP:38211


四、UDP 还是 TCP?选错协议是最隐蔽的坑

这是 NAT 开服最高频的错误。很多游戏两个协议都需要,或者游戏用 UDP、查询用 TCP。

游戏游戏端口协议
幻兽帕鲁8211UDP
方舟生存进化7777 / 7778 / 27015UDP(RCON 32330 TCP)
RUST28015 / 28017UDP(RCON 28016 TCP)
我的世界25565TCP
泰拉瑞亚7777TCP
CS227015UDP + TCP 都要
七日杀26900UDP + TCP 都要
英灵神殿2456-2458UDP

完整 20+ 款游戏的端口协议表见:
《Steam 游戏开服端口速查表》→ https://z0w.cn/wiki/game-server-port-cheatsheet.html

规则:不确定就两个协议都映射一遍。多映射一条规则没有副作用,少映射一条就连不上。


五、四层防火墙,漏一层就白干

NAT 开服要过的关卡比独立 IP 多一层,一共 4 道:

① 服务商安全组 / 上层防火墙  ← 有些厂商在控制台还有一层
② NAT 端口映射规则            ← NAT 型独有,最容易漏
③ 系统防火墙(ufw / firewalld / Windows 防火墙)
④ 游戏服务端自身监听          ← 配置里端口写错

逐层排查法(从内到外,效率最高):

第④层:先确认服务真的在监听

# Linux
sudo ss -lntup | grep 8211

# Windows(PowerShell)
netstat -ano | findstr 8211

没有输出 = 服务端没起来或端口写错,先解决这个。

第③层:系统防火墙

# Linux
sudo ufw status
sudo ufw allow 8211/udp
# Windows(管理员 PowerShell)
netsh advfirewall firewall add rule name="Game" dir=in action=allow protocol=UDP localport=8211

第②层:NAT 映射规则(回到控制台核对,注意内外网端口别填反)

第①层:服务商安全组(部分厂商有,同样要放行)


六、验连通性:别用 ping

ping 通不通跟游戏端口能不能连,完全是两回事。 ICMP 和 UDP 端口是两码事。

正确做法,从朋友的电脑上测:

# Windows PowerShell(Test-NetConnection,Win8 以上自带)
Test-NetConnection -ComputerName 外网IP -Port 外网端口 -InformationLevel Detailed
# Linux / macOS
nc -vzu 外网IP 外网端口      # 测 UDP
nc -vz  外网IP 外网端口      # 测 TCP

UDP 检测的局限:UDP 无连接,nc -u 经常显示 succeeded 也不代表真通。最靠谱的验证永远是:让朋友直接在游戏里连一次。


七、常见问题排查

Q:映射做了,服务也在跑,朋友还是连不上?
按顺序查:① 协议是 UDP 还是 TCP 选对了吗 ② 内外网端口填反了吗 ③ 系统防火墙放行了吗 ④ 游戏配置里写的端口和内网端口一致吗。

Q:外网端口是系统随机分配的,能改吗?
多数面板支持在可用范围内自定义,具体看服务商规则。随机端口虽然长,但安全性反而更好(扫描器不容易扫到)。

Q:一台机器能开多个游戏服吗?
能。每个游戏用不同的内网端口,各自映射一条外网规则即可。注意内存要够。

Q:NAT 服延迟会比独立 IP 高吗?
正常情况几乎无差别,转发延迟在 1ms 量级,感知不到。延迟主要取决于机房到你和朋友的网络质量。

Q:朋友那里显示"服务器无响应"?
通常是查询端口(query port)没映射。很多游戏有游戏端口 + 查询端口两个,两个都要映射,只映射游戏端口会出现"能进但列表里看不到"的情况。


八、NAT 开服清单(建议收藏)

开服前照着过一遍,能避开 90% 的坑:

  • [ ] 确认游戏需要的所有端口(游戏端口 + 查询端口 + RCON 端口)
  • [ ] 确认每个端口的协议(UDP / TCP)
  • [ ] 控制台添加映射规则,逐个端口添加
  • [ ] 系统防火墙放行同样的端口
  • [ ] 游戏配置文件里的端口 = 内网端口
  • [ ] 服务端启动后用 ss -lntup 确认在监听
  • [ ] 把外网 IP:外网端口发给朋友
  • [ ] 让朋友实测一次,别自己猜

📌 端口映射这块还有疑问,欢迎评论区交流。
我们家的 NAT 型云服务器在控制台就能自助添加映射规则,游戏服场景专门优化过,价格比独立 IP 省一半以上 → 财富云计算 https://z0w.cn
延伸阅读
  1. 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
  2. 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
  3. 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
  4. 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
  5. 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
  6. RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
  7. 短链接服务搭建:Shlink 自托管,链接数据自己掌握
  8. 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道
更多阅读
  1. 上一篇:泰拉瑞亚开服保姆级教程(Windows 版):.NET 6 + TCP 7777 全流程
  2. 下一篇:Linux云服务器开服通用前置教程:SSH、依赖库、守护进程一次配好
发表评论 36

取消回复