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

N2N, 折腾 2018/08/02

最近在折腾的一件事:朋友天南海北,如何进行局域网游戏?

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

捣鼓了一些很古老的虚拟局域网软件Hamachi和LAN Bridger。问题很多,延迟奇高,放弃……

接着就是各种尝试不同的方案,最终找到了一个比较完美的解决方案:N2N

相对于其他虚拟局域网方案,N2N在网络环境良好的情况下,能够实现P2P直连,有效的降低虚拟局域网的延迟,即便无法直连,通过服务器中转,也能获得不错的延迟

只要支持局域网的联机游戏,N2N都支持。目前我个人已测试成功的有:

CS、红警2、红警3、星际争霸1、魔兽争霸3、DOTA、方舟生存进化、文明6、群星Stellaris

流星蝴蝶剑、人类一败涂地、百战天虫、求生之路1&2、我的世界、火炬之光2、帝国时代2

……

直连状态Ping:

非直连状态Ping(服务器中转):

下载客户端

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

使用方法

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

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

2.运行

请以管理员权限运行n2n.exe启动器(小黄鸭图标右键 —— 以管理员身份运行

初次运行时,启动器会自动安装所需要的虚拟网卡驱动

注:安装驱动时如果出现Windows安全提示,请信任即可

3.简单设置

注:设置虚拟局域网IP时,请勿和当前电脑的物理局域网IP段冲突

4.点击启动

点击后可能会弹出Windows防火墙的提示,请将N2N启动器放行即可

如果连接到supernode(服务端)失败,会提示 WARNING: Supernode not responding

如果搜寻到P2P连接(直连状态),会提示  P2P connection established

注:

1)EasyN2N v1.7 内置的Edge组件(版本r523)无法显示P2P连接提示

2)如何让N2N虚拟局域网走P2P?并简单判断是否能组建P2P

具体验证是否组网成功,请接着看下文

其他客户端

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

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

比如:

朋友A:IP地址:192.168.66.1,组名称:bugxia
朋友B:IP地址:192.168.66.5,组名称:bugxia
……

测试

N2N启动器内置简易连通性测试工具

同理,也可以在两个客户端间建立TCP、UDP连接进行测试

关于延迟

目前常见的N2N传输,有两种方式

直连

当你和朋友的网络环境比较纯净,NAT状态良好(比如同城市同电信宽带)的情况下,N2N会在参与方之间建立P2P连接

所有的通信都不会经过服务器,延迟能够极大程度降到最低

中转

相反,当参与方网络环境相对复杂(比如校园网,有多层交换),就无法建立P2P连接,所有的通信都会经过服务器来中转

中转模式下,A到B的延迟 ≈ A到服务器的延迟 + B到服务器的延迟

测试

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

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

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

所以,想要N2N走P2P传输,本地的网络环境很重要。

判断本机网络NAT类型:

如何让N2N虚拟局域网走P2P?并简单判断是否能组建P2P

引用 lucktu 站长的话:

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

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

1.双方中只要有一方是Full Cone,可以直连
2.双方都是Restricted ConePort Restricted Cone,这种情况可以打洞,通过N2N服务器握手以后,双方的数据不再经过服务端
3.一方为Restricted Cone,另一方为Symmetric NAT,可以打洞,通过N2N服务器握手以后,双方的数据不再经过服务端
4.一方为端口Port Restricted Cone,另一方为Symmetric NAT,这种情况无法打洞,数据要走N2N服务器中转
5.双方都为Symmetric NAT,这种情况也是无法打洞的,数据要走N2N服务器中转

常见问题

连接服务器失败WARNING:Supernode not responding – moving to 0 of 1

成功服务器连接[OK] Edge Peer <<< ================ >>> Super Node

常见问题解决方法

1.无法ping通

如果出现一方可以ping通,另一方无法ping通,则很有可能为对方开启了防火墙,使用EasyN2N内一键关闭防火墙功能再次尝试

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

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

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

3.无法连接到服务器

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

本文标签: