使用N2N搭建虚拟局域网联机游戏(EasyN2N\小黄鸭)

N2N, 折腾 2018/08/02

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

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

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

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

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

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

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

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

下载客户端

EasyN2N

使用方法

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

2.运行

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

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

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

3.启动

需要选择或操作的几个选项

服务器:提供N2N组网的服务器(EasyN2N内置,请根据软件内指引免费获取)

小组名称:指定一个虚拟网小组名称(请尽量复杂,以便和公共N2N服务器上其他小组区分开)

虚拟IP:指定一个虚拟的局域网IP(或者让软件自动分配,但可能存在一些未知问题)

准备就绪后,点击启动

注:可能会弹出Windows防火墙的提示,请放行

4.查看状态

其他客户端

当需要让更多朋友加入你的虚拟小组时,可以使用以下方法

方法1:快捷加入

点击图标后,EasyN2N将把当前连接的服务器、虚拟IP、小组名称等导出为专用分享链接

如:easyn2n://bjJuLnMxLmJ1Z3hpYS5jb206OTUyN0B6U213VUg0VldiQGF1dG9A

将上述链接复制粘贴给朋友,在朋友的客户端上,点击菜单导入

注:

若导出端为手动指定虚拟IP,则导入端需要手动填写虚拟IP的最后一位

方法2:手动加入

新加入的客户端,除虚拟IP设置不同而外,其他设置均需保持一致即可

朋友A:IP地址:192.168.66.1,组名称:zSmwUH4VWb,服务器:n2n.test.com
朋友B:IP地址:192.168.66.2,组名称:zSmwUH4VWb,服务器:n2n.test.com
朋友C:IP地址:192.168.66.3,组名称:zSmwUH4VWb,服务器:n2n.test.com
……

注:

1.若选择自定义虚拟IP(比如192.168.66.1),则需要所有客户端均在该IP段内(如192.168.66.x)

2.虚拟小组的服务器、组名称均需保持一致,每个客户端虚拟IP最后一位均需独立设置

测试

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

关于延迟

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

中转

当参与方网络环境相对复杂(比如校园网,或存在多层交换),无法建立P2P连接时,所有的数据传输都会经过服务器中转

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

直连

当组网参与方网络环境比较纯净,NAT状态良好的情况下,N2N会在参与方之间建立P2P连接

此时所有的数据传输不会经过服务器中转,延迟能够极大程度降到最低

如何让N2N虚拟局域网走P2P?简单测试

常见问题

一些常见的问题汇总

本文标签:


381 条评论

  • 一飞 评论于 回复

    A B两个电脑在一个局域网内,都用N2N,延迟350ms,连接速度也是非常慢,这是什么原因

    • Bug侠 评论于 回复

      @一飞
      A\B在同一个物理局域网时并组建了N2N,系统会根据路由表优先通过N2N到对方(看你的延迟,应该是中转了,延迟=A到服务器的延迟+B到服务器的延迟)

  • 折腾侠 评论于 回复

    大佬,我最近从企鹅云上搞了台VPS,一直在关注开源的组网技术,现在已经试了wireguard和tinc,发现wireguard并没有P2P模式,而且速度不咋的。而tinc这个所谓的p2p明显不符合我要求。我公司是联通的宽带,家里是移动大内网,tinc这货反而一直在往固定UDP端口打洞,百分百不会成功的,因为那个端口我都没开到外网上。目前我这边p2p唯一成功的只有zerotier这个商业软件,可以跑满移动带宽。我现在最后的方案就是N2N了,我想知道N2N在移动大内网下打洞成功的机率如何,他的机制是否跟tinc类似?

    • Bug侠 评论于 回复

      @折腾侠
      如果zerotier可用,建议还是zerotier,毕竟成熟稳定。当然N2N也是另外一种选择,这几年我一直在用N2N,很少再折腾其他的同类软件。
      N2N打洞相关的东西可用参考:https://github.com/ntop/n2n/blob/ecedcdcb58f64544531e3bbc87b6980b1de83f6a/doc/Hacking.md

      • 折腾侠 评论于 回复

        @Bug侠
        谢谢大佬回复,我会多关注n2n方面的知识,也感谢你提供的easyn2n,祝大佬前程似锦 :大笑:

  • 王世 评论于 回复

    用了N2N,公司里面不同网段之间电脑传文件速度达到一百兆,但是远程桌面非常卡,只有2mbps左右的速度,不知道为什么。用了向日葵远程看视频,软件上显示P2P连接的,网速显示也有10到20mbps

    • Bug侠 评论于 回复

      @王世
      这个得排查一下,比如如果公司A\B之间原本就可以通过物理局域网连接,那么要tracert一下里A到B,看走的哪个网关,看看数据走没走N2N

      • 王世 评论于 回复

        @Bug侠
        发现了,公司内网接的是联通的,笔记本连了宿舍的无线网,无线网是移动的,断开无线网正常了

  • 梦暮 评论于 回复

    我和我的朋友防火墙都关了,就是 ping 不到,查了半天,发现是我们之前有安装过 UsbEAm_LAN_Party_V1.2 这个软件,结果网络驱动冲突了。解决方法:前往“设备管理器”,在网络驱动找到TAP-Windows Adapter V9,卸载,然后在 EasyN2N\n2n_client 重新安装 tap-windows-9.21.2.exe 这个网络驱动即可。希望能帮到一些相同状况的人 :萌:

    • FPC12138 评论于 回复

      @梦暮
      dogfight360 大佬的UsbEAm_LAN_Party_V1.2里面的TAP9应该是自己修改过的,N2N无法调用里面的接口自动修改IP。

  • bucheryang 评论于 回复

    为什么我朋友可以ping 而我不成功啊

  • kim 评论于 回复

    我开流星蝴蝶剑的时候还是找不到房间,跃点修改过了,然后是用wireshark抓包软件抓的时候,发现流星蝴蝶剑的UDP广播包用的是本地的网卡在广播,没用n2n的tap虚拟网卡。咋办

  • lst 评论于 回复

    请问用了这个之后电脑开热点出问题了咋办,手机连热点一直在验证ip那边连不上

    • Bug侠 评论于 回复

      @lst
      不好意思,没遇到过这种情况,我这边实测荣耀Magicbook,Win10 2004,开启N2N,并开热点,手机也能连上,小米10

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