使用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 条评论

  • King 评论于 回复

    大佬,请教下,密码保存方式能不能使用暗码,那样就算别人看到了也不知道,安全性会更高点,谢谢

    • Bug侠 评论于 回复

      @King
      嗯,你说的是哪个密码呢?

    • Bug侠 评论于 回复

      @King
      暂时也没思路,这个是官方的方法,它是已明文的方式保存到edge.conf配置文件里。如果我通过EasyN2N这一层把它加密存储,但还是要已明文的方式还原进edge的配置文件里。略微有一些多此一举了~

  • fengyuge 评论于 回复

    [2022-07-22 12:35:48] WARNING: NAT-PMP invalid response type 9776
    [2022-07-22 12:35:56] WARNING: no IGD UPnP device found on the network
    请问站长,路由器的UPNP开启了,本地的UPNP服务也开启了,但还是出现这样的问题,是怎么解决呢

  • 奥利给 评论于 回复

    我是萌新,第一次连接没显示虚拟网卡驱动安装成功,点升级也没反应

    • Bug侠 评论于 回复

      @奥利给
      如果没有安装虚拟网卡的提示,则表示本机已经安装了虚拟网卡,无需再次安装

  • lablj 评论于 回复

    ERROR:recvfrom() failed -1 errno 0 (No error),请问这个报错是什么原因导致的?

    • Bug侠 评论于 回复

      @lablj
      未知错误(No error),建议使用不同系统下的服务端测试

  • tufeixp 评论于 回复

    请问如何指定开某些防火墙端口或服务才能正常连接,整个关闭防火墙安全性能堪忧。

    • Bug侠 评论于 回复

      @tufeixp
      以下为单独操作防火墙的步骤:
      1.需要把N2N组建(edge_v3_bugxia_n2n.exe)和EasyN2N主程序(n2n.exe)分别添加允许其出入栈规则
      请参考:https://jingyan.baidu.com/article/3c343ff70544f84c3679631e.html
      2.允许被PING
      请参考:https://iknow.lenovo.com.cn/detail/kd_9549.html

  • TheMonitor 评论于 回复

    大佬,消逝的光芒和森林无法局域网联机,两边都已经ping通了

  • 小震 评论于 回复

    这个有没有易语言的开源呢?

  • hyyys 评论于 回复

    请问博主,在加入别人房时显示
    [2022-05-10 20:50:16] [OK] edge <<>> supernode
    [2022-05-10 20:52:26] WARNING: NAT-PMP invalid response type 9776
    [2022-05-10 20:52:28] WARNING: UPnP local TCP port 64987 mapping failed, code 501 (Action Failed)
    [2022-05-10 20:52:28] WARNING: UPnP local UDP port 64987 mapping failed, code 501 (Action Failed) 是我有设置对吗

    • Bug侠 评论于 回复

      @hyyys
      在这篇里已经有写了:https://bugxia.com/2518.html
      是因为你的本地网络没有开启UPnP或者没有成功映射导致

      UPnP、NAT-PMP……failed
      no IGD UPnP device found on the network

      检查路由器是否打开UPnP开关
      若无法操作UPnP开关,则此条提示不影响使用(可以通过附加参数 –no-port-forwarding 关闭)

      • hyyys 评论于 回复

        @Bug侠
        感谢博主耐心解答,我明天尝试一下 :咧嘴:

  • yhwinzoo 评论于 回复

    你好,我下载不下来啊,点击下载没有反应,第一次下载自动删除了,我已经把杀毒软件关闭了

    • Bug侠 评论于 回复

      @yhwinzoo
      可能是在浏览器下载的时候就被干掉了……
      1.不要使用IE或者Edge
      2.关闭或在Windows Defender添加白名单

  • 喰时之城的三三 评论于 回复

    作者大大,我是b站的一个up主 ID 喰时之城的三三 想用您的软件改善艾尔登法环联机 我能否在B站出个教程推广一下? 我会在简介表明出处和感谢的

    • Bug侠 评论于 回复

      @喰时之城的三三
      没问题的,随便使用,感谢您的推广。

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