Featured image of post 异地组网联机游戏

异地组网联机游戏

异地组网联机游戏

毕业后,同学们都奔赴各地忙着升学和事业,放假时偶尔会开黑打一两局魔兽,但由于身处不同省份,局域网游戏联机有点麻烦。

期间尝试过蹭免费组网工具、自建中转服务器、贝锐蒲公英组网,通过对比,希望大家能找到适合自己的组网方式。

EasyN2N或N2N

由于最开始用的EasyN2N,体验还不错,从相关社区中还能学习到一些网络知识。

但是,由于EasyN2N的中转服务器是免费的,所以在大家都在用的时候,会出现中转服务器负载过高,导致延迟过高,甚至无法连接的情况,在毕业回老家后,老家那边的网络较差,经常玩到一半掉线。

此外,EasyN2N经常被杀毒软件误删,也可能导致中途掉线,所以建议推荐通过命令行的方式来使用,而不要使用它自带的可视化工具。

相关的使用可参考该文章

贝锐蒲公英

贝锐蒲公英是一个收费的组网工具,3人以内免费,如果是超过3人的组网,需要购买套餐。

免费版的贝锐蒲公英不能设置虚拟局域网客户端的IP,有些游戏比如魔兽就需要抓包分析下,可以发现B客户端无法收到A客户端广播的udp报文,所以得要通过网络调试助手来辅助创建房间,下面是具体的操作步骤:

假设存在A、B两台电脑,A电脑的IP地址为172.16.3.130,B电脑的IP地址为172.16.3.150,子网掩码都为255.255.252.0

  1. 假如B电脑作为房主创建房间,A电脑作为客户端加入房间

通过Wireshark抓包可以发现,B电脑创建房间后会一直向udp的6112端口广播f732100001000000010000000c000000,由于时间有限就不分析报文含义了。

当A电脑扫描存在的房间时,A电脑会向udp的6112端口广播f72f1000505833571a00000000000000,由于A和B不在同一个网段,所以B电脑无法收到A电脑的广播,A便无法知道是否存在房间。

接着,我们通过网络调试助手在A电脑上向B电脑发送用于扫描房间的udp广播包,假设收到报文msg(包含了玩家人数、地图信息等)。

然后,在B电脑上将msg的内容发送给A电脑,A电脑就可以加入房间了。

总结

如果需要组网的客户端较少,N2N和贝锐蒲公英都是较低成本的组网方式。

如果有更进一步的需求,比如房间人数较多,或者需要更稳定的网络,如果玩家主要集中在几个地区,可以考虑自建中转服务器,如果玩家分布较广,可以考虑购买贝锐蒲公英套餐。

参考

  1. https://bugxia.com/n2n_launcher_param

  2. https://www.cnblogs.com/flying_bat/archive/2008/06/24/1228627.html


2025-02-22 更新

Licensed under CC BY-NC-SA 4.0
最后更新于 Feb 22, 2025 19:39 +0800