很多游戏写着「支持局域网联机」,两个人坐在同一间屋子里能玩,一旦分开就互相看不见。这不是游戏坏了,而是局域网联机依赖的三层条件里,有一层在异地不成立。

第一层:发现——游戏怎么找到对方

局域网联机最常见的发现方式是广播和组播:游戏向本网段喊一声「有人开房吗」,同网段的机器回应。

问题在于,广播不会跨路由器。你和朋友各自在自家的网络里,中间隔着运营商的路由,广播包发不出去,游戏自然认为「没有房间」。

这一层不解决,后面做什么都没用。表现就是:房间明明建了,对方列表里空的。

第二层:寻址——双方是不是「同一网段」

有些游戏不用广播,而是让玩家手动填 IP 直连。这时要求两台机器能互相路由到对方的地址。

家用宽带普遍在 NAT 后面,你没有独立公网 IP,对方主动连你连不进来。表现是:填了 IP 也超时。

解决方向只有两个:

  • 做端口映射,把外网端口转到内网机器(需要公网 IP 和路由器权限)
  • 用虚拟局域网,把双方先放进同一个虚拟网段,让游戏以为你们在同一个路由器下

第三层:传输——线路质量决定体验

前两层通了,只能保证「连得上」。能不能玩,取决于延迟和丢包。

常见的坑:

  • 跨运营商(电信 ↔ 联通 ↔ 移动)走普通线路会绕路
  • Wi-Fi 信号弱、信道拥挤,丢包比延迟更致命
  • 后台在下载、直播、云同步,把上行带宽吃满

排查时先看丢包再看延迟。延迟 60ms 但丢包 5%,体验远差于延迟 120ms 零丢包。

一张排查顺序表

现象大概率卡在哪层先做什么
好友列表里看不到房间发现确认双方在同一虚拟网段/房间
填 IP 直连超时寻址检查 NAT 类型,改用虚拟局域网
能进但频繁卡顿传输换近节点、改用有线、关后台
进游戏后立刻断开版本/防火墙对齐游戏版本,放行程序

用万联之后,这三层各解决到哪一步

  • 发现:创建房间后,成员在客户端里就能看到彼此,游戏的局域网广播被限制在虚拟网段内
  • 寻址:每台机器由客户端分配同网段的虚拟 IP,不用记地址、不用做端口映射
  • 传输:节点选择决定链路质量,跨运营商仍可能延迟,要接着按传输层的方法排查

落地时按这个顺序核对:

  1. 双方都在同一个房间,成员列表能看到对方
  2. 虚拟 IP 前三段一致,最后一段不同
  3. 游戏里选「局域网」再刷新房间列表

三条都满足仍然看不到房间,问题通常在游戏版本或防火墙,而不是组网本身。客户端入口见万联下载页。

小结

异地联机的本质,是把「不在同一网段」这件事伪装成「在同一网段」。搞清发现、寻址、传输三层,遇到问题就能判断该改哪一步,而不是反复重装客户端。

具体操作步骤见 三步上手,按现象对照排查见 常见问题。