Windows下使用N2N搭建虚拟局域网联机游戏(客户端)

折腾 2018/08/02

最近在折腾的一件事:如何在没有公网IP的情况下进行局域网游戏?

若干年前,一伙同学约战网吧,CS、红警之类的联机游戏玩的不亦乐乎,如今再想找回当年的感觉已经非常不容易。其中一个比较直接的原因是,不在一个局域网内。

前段时间不知怎么的,一群奔三的人居然想要联机CS。第一时间想到的是对战平台,可是总有几个强迫症,不想让电脑里再多安装一个软件。没办法,转而研究很古老的虚拟局域网软件Hamachi和LAN Bridger。Hamachi的小问题很多,个别机器无法成功连接,就算能ping通对方,延迟也是奇高。而LAN Bridger干脆是客户端都无法下载……接着就是各种尝试不同的方案,最终找到了一个比较完美的解决方案:N2N

下载客户端

Windows下的N2N 客户端启动器下载:https://bugxia.com/357.html

客户端A

1.解压上述下载的压缩包

比如解压到 D:\n2n_client_windows 如图:

2.安装虚拟网卡

运行n2n_client目录下的tap-windows-9.21.2.exe,安装虚拟网卡,一路点击下一步即可。

安装完毕后会在网络适配器界面出现TAP-Windows Adapter V9

4.返回上级目录,运行n2n.exe启动器

点击启动

客户端B

客户端B,包括后续新加入的客户端,除IP设置不同而外,其他设置均需保持一致

一句话:同IP段但不同IP,同服务器和端口,同小组和密码,同版本,是成功组网的前提

如:

朋友A:IP地址:192.168.66.1,组名称:bugxia,组密码:123456
朋友B:IP地址:192.168.66.5,组名称:bugxia,组密码:123456
朋友C:IP地址:192.168.66.12,组名称:bugxia,组密码:123456
朋友D:IP地址:192.168.66.110,组名称:bugxia,组密码:123456
……
……

测试

先关闭Windows自带的防火墙,或对在防火墙中对ICMP协议进行放行

关闭防火墙方法可参考:https://jingyan.baidu.com/article/17bd8e52083ce685ab2bb839.html

然后简单使用PING测试互通情况

键盘Win+R键,打开运行,输入cmd,回车,在命令行窗口下,输入ping 192.168.100.101

关于延迟

引用 lucktu 站长的话:

我认为N2N的边缘节点之间的通讯方式有3种:
一是中转,就是边缘节点(edge)上所有的流量都要通过中心节点,速度最慢;
二是借道,就是边缘节点之间的通讯借用其他的通道来完成。例如当你在两个边缘节点之间运行了多个edge,那么新版的v2.1会借用速度较快的其他edge通道;
三是直连,就是边缘节点之间直接连接通讯,不借助第三方。

恩山论坛 也有相关的解释:

关于打洞的问题,这取决于网络环境了,简单说下:
1、双方中只要有一方是完全锥形NAT(NAT1),可以直连;
2、双方都是非对称型的NAT(受限型NAT:NAT2和端口受限型NAT:NAT3),这种情况可以打洞,通过supernode握手以后,双方的数据不再经过服务端;
3、一方为受限型NAT(NAT2),另一方为对称型NAT(NAT4)可以打洞,通过supernode握手以后,双方的数据不再经过服务端;
4、一方为端口受限型NAT(NAT3),另一方为对称型NAT(NAT4),这种情况无法打洞,数据要走supernode中转;
5、双方都为对称型NAT,这种情况也是无法打洞的,数据要走supernode中转。

我也做了测试:

A和B为同一个物理局域网的设备,并建立N2N虚拟局域网

理论上讲,物理局域网下,A和B的延迟在1ms左右,而N2N网络下,A和B的延迟也应该在5ms~10ms左右

但实际的ping情况是,一开始A到B的延迟在50ms左右(非直连),在不断ping了200次左右时,N2N自动切换为直连模式,ping值只有5ms左右,如图:

所以,想要N2N直连,本地的网络环境也很重要。而关于NAT的东西很玄乎,我到现在也是很迷糊…… :笑哭:

常见问题

无法连接服务器时会重复提示WARNING:Supernode not responding – moving to 0 of 1

成功连接Rx REGISTER_SUPER_ACK myMAC=

常见问题解决方法

1.无法ping通

如果出现一方可以ping通,另一方无法ping通,则很有可能为对方开启了防火墙,关闭防火墙即可

2.无法搜索到对方建立的游戏(房间)

参考:N2N组建虚拟局域网联机遇到搜不到房间的问题一例

参考:Win10下使用N2N组建虚拟局域网联机游戏(星际争霸)

或者尝试关闭Windows自带防火墙或第三方安全软件

参考:https://jingyan.baidu.com/article/17bd8e52083ce685ab2bb839.html

3.无法连接到服务器

检查客户端填写的服务器端口是否正确

检查服务器端口是否在iptables等防火墙中放行

检查客户端是否以管理员权限运行

4.客户端不断重复ERROR等信息

若能正常联机,则可以忽略错误提示

本文标签:


64条评论

评论(本站已开启评论回复邮件通知功能,请如实填写邮箱以便及时收到回复)