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

  • 文明666666 评论于 回复

    为什么我点了启动没有绿色的勾出现

  • hhh 评论于 回复

    怎么一直显示安装虚拟网卡安装没完了

  • kntt 评论于 回复

    大佬,真心求教, 启动游戏时候绑定网卡 是什么操作, 或者说如何实现的?我想手动写个脚本处理
    我玩的游戏不绑定虚拟网卡就启动 就找不到服务

      • kntt 评论于 回复

        @Bug侠
        好的, 感谢大佬 :咧嘴:

      • kitty 评论于 回复

        @Bug侠
        楼主可以试试联系作者搭建个法海的服务器,功能比这个n2n更强大,使用更简单,网络也更稳定,支持自定义域名和局域网路由功能。网址:https://fahi.uusec.com/

  • 游戏 评论于 回复

    如果魔兽才联机1.24E或者一下版本!还有你说的这些游戏!用虎克对战平台就可以了!比这个组网要方便!!!但是魔兽要调用JAPI环境的话 就得需要组网了!不然连不上!!

  • 如果我没来过 评论于 回复

    博主在吗,我想问下我的世界用hmcl启动器启动的,然后服务端是在云服务器弄得,然后客户端都启动后,其中某个客户端在启动游戏后,选择对局域网开发之后,其他人搜不到呀,然后添加服务器也无法联机

  • JJ 评论于 回复

    刚开始可以成功连接,但后来点启动后一直连接不上,我发现网络适配器中TAP windows Adapter V9,也就是EasyN2N的虚拟网卡的状态是网络电缆被拔出。删除虚拟网卡重装还是不行。
    请问有什么方法能解决。
    [2023-01-15 15:10:31] send REGISTER_SUPER to supernode [n2n.s2.bugxia.com:18457] asking for IP address
    [2023-01-15 15:10:33] adding supernode = n2n.s2.bugxia.com:18457
    [2023-01-15 15:10:33] starting n2n edge 3.1.1-16-g23e168b-dirty-r1200 x64_static May 8 2022 23:45:52
    [2023-01-15 15:10:33] using compression: none.
    [2023-01-15 15:10:33] using null cipher.
    [2023-01-15 15:10:33] number of supernodes in the list: 1
    [2023-01-15 15:10:33] supernode 0 => n2n.s2.bugxia.com:18457
    [2023-01-15 15:10:33] WARNING: encryption is disabled in edge
    [2023-01-15 15:10:33] successfully created resolver thread
    [2023-01-15 15:10:33] successfully created port mapping thread
    [2023-01-15 15:10:33] automatically assign IP address by supernode
    [2023-01-15 15:10:33] send REGISTER_SUPER to supernode [n2n.s2.bugxia.com:18457] asking for IP address
    [2023-01-15 15:10:35] NAT-PMP added TCP port mapping: 10.10.158.120:59927 -> localhost:59927
    [2023-01-15 15:10:35] NAT-PMP added UDP port mapping: 10.10.158.120:59927 -> localhost:59927
    [2023-01-15 15:10:36] send REGISTER_SUPER to supernode [n2n.s2.bugxia.com:18457] asking for IP address
    [2023-01-15 15:10:39] send REGISTER_SUPER to supernode [n2n.s2.bugxia.com:18457] asking for IP address
    [2023-01-15 15:10:42] send REGISTER_SUPER to supernode [n2n.s2.bugxia.com:18457] asking for IP address
    [2023-01-15 15:10:45] send REGISTER_SUPER to supernode [n2n.s2.bugxia.com:18457] asking for IP address
    [2023-01-15 15:10:48] send REGISTER_SUPER to supernode [n2n.s2.bugxia.com:18457] asking for IP address
    [2023-01-15 15:10:51] send REGISTER_SUPER to supernode [n2n.s2.bugxia.com:18457] asking for IP address

    • Bug侠 评论于 回复

      @JJ
      我隐隐约约大概有点思路,方便贴一下这段命令的结果吗?
      ——–
      ipconfig /all | findstr “描述”
      ——–
      打开cmd,然后执行

      • JJ 评论于 回复

        @Bug侠
        描述. . . . . . . . . . . . . . . : Famatech Radmin VPN Ethernet Adapter
        描述. . . . . . . . . . . . . . . : OrayBoxVPN Virtual Ethernet Adapter
        描述. . . . . . . . . . . . . . . : TAP-Windows Adapter V9
        描述. . . . . . . . . . . . . . . : Realtek PCIe GbE Family Controller

      • JJ 评论于 回复

        @Bug侠
        我刚升级到3.12,用服务器延迟检测发现两个免费服务器都是失败

  • 评论于 回复

    可以和手机连游戏吗

  • 寒言椹 评论于 回复

    博主你好,请问点击小组列表图标时显示“获取列表用户数据失败,请稍后重试”这个问题是由什么原因导致的呢?

    • Bug侠 评论于 回复

      @寒言椹
      这个功能是官方提供的API,出现这个提示一般是客户端本身没有获取到相关数据(可能是程序本身的bug),所以报这个提示,暂时没有啥规律~

  • jackpcg1 评论于 回复

    我自己设置了端口,比如-t 1919为何链接的时候总是显示supernode not responding, now trying。而且服务器正确显示了1919(managment)。防火墙已经放行1919这个端口

    • Bug侠 评论于 回复

      @jackpcg1
      -t 端口是管理端口,不是连接端口,连接端口需用 -p 自定义 :萌:

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