使用N2N搭建虚拟局域网联机游戏(服务端)

N2N, 分享, 折腾 2018/04/14

客户端

本站已搭建免费公益N2N服务端,并制作了N2N的启动器,如需直接联机游戏,请移步:

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

服务端(Linux)

以下安装编译基于CentOS 7 64bit,版本为n2n 3.0.0尽量使用同版本服务端和客户端,避免发生兼容性问题,导致无法连接

注:以下安装方式二选一

RPM安装

yum install libzstd -y
wget https://github.com/ntop/n2n/releases/download/3.0/n2n-3.0.0-1038.x86_64.rpm
rpm -i n2n-3.0.0-1038.x86_64.rpm

编译安装

编译环境

#CentOS
yum install autoconf automake libtool git kernel-headers -y
#Ubuntu
apt-get install autoconf make gcc -y

开始编译

wget https://github.com/ntop/n2n/archive/refs/tags/3.0.tar.gz
tar xzvf 3.0.tar.gz
cd n2n-3.0
./autogen.sh
./configure
make && make install

启动服务端

详细的服务端参数见这里 EasyN2N 服务端(Supernode)附加参数

#实际使用时,可以去掉 -f 参数,使其后台运行
supernode -p 9527 -f

若服务器开启了如iptables\firewalld\ufw等防火墙,需要放行supernode所设置的端口,否则客户端无法连接

#firewalld
firewall-cmd --zone=public --add-port=9527/udp --permanent
firewall-cmd --reload
#iptables
iptables -I INPUT -p udp --dport 9527 -j ACCEPT
service iptables save
service iptables restart
#ufw
ufw allow 9527/udp

另外,如果使用的阿里云、腾讯云等云服务器,还需要单独再在安全组中放行使用的端口(UDP)

服务端(Windows)

下载 EasyN2N,界面菜单中打开服务端

选择服务端的版本(默认v3,推荐v3),一键启动

详细的服务端参数见这里 EasyN2N 服务端(Supernode)附加参数

和Linux端类似,开启了Windows防火墙的机器需要注意放行指定的端口,或关闭防火墙

另外,如果使用的阿里云、腾讯云等云服务器,还需要单独再在安全组中放行使用的端口(UDP)



265 条评论

  • 若然 评论于 回复

    请问我使用提供的服务器,使用自动获取IP,
    一直卡最后这个Asking for IP Address,这是什么原因呢?
    [2022-06-19 17:39:06] adding supernode = mc13.starmc.cn:9527
    [2022-06-19 17:39:06] starting n2n edge 3.1.0-54-g45520f3-dirty-r1127 x64_static Jan 22 2022 12:10:15
    [2022-06-19 17:39:06] using compression: none.
    [2022-06-19 17:39:06] using null cipher.
    [2022-06-19 17:39:06] number of supernodes in the list: 1
    [2022-06-19 17:39:06] supernode 0 => mc13.starmc.cn:9527
    [2022-06-19 17:39:06] WARNING: encryption is disabled in edge
    [2022-06-19 17:39:06] successfully created resolver thread
    [2022-06-19 17:39:06] successfully created port mapping thread
    [2022-06-19 17:39:06] automatically assign IP address by supernode
    [2022-06-19 17:39:06] send REGISTER_SUPER to supernode [mc13.starmc.cn:9527] asking for IP address
    [2022-06-19 17:39:09] send REGISTER_SUPER to supernode [mc13.starmc.cn:9527] asking for IP address
    [2022-06-19 17:39:12] send REGISTER_SUPER to supernode [mc13.starmc.cn:9527] asking for IP address
    [2022-06-19 17:39:15] send REGISTER_SUPER to supernode [mc13.starmc.cn:9527] asking for IP address

    • Bug侠 评论于 回复

      @若然
      服务端制定了分配的IP段?
      Asking for IP Address是指客户端没有指定虚拟IP,需要从服务端获取,但是服务端一直分配不下来IP,所以不停的在ask :笑哭:

      • IAQ 评论于 回复

        @Bug侠
        请问遇到这种情况,有什么解决方法吗。

      • da 评论于 回复

        @Bug侠
        我也是这样要这么解决呀

      • 小张 评论于 回复

        @Bug侠
        大佬你好,就和这楼兄弟一样的情况 服务器是阿里云的 请问这种具体怎么解决?

  • 门刀臣 评论于 回复

    大佬您好,我用云服务器搭建了一个服务器以供连接,但是请问我该如何设置超级节点呢?看了大佬发的指令输入后会导致客户端连接需要几分钟才能连上,服务端那边则会一直报错

    • Bug侠 评论于 回复

      @门刀臣
      不太懂你的意思,不管Windows还是Linux,服务端启动后,客户端直接连接“服务端IP:端口”就行。至于你说的“需要几分钟才能连上”,不知道是咋回事,另外报错内容是啥呢?

      • 门刀臣 评论于 回复

        @Bug侠
        谢谢大佬回复,是这样的,我租了一个云服务器用来做服务端,然后客户端这边使用-S1附加代码会隔很久才能连上服务端,服务端这边报错:authentication failed. 过了一会虽然能够连上但是和朋友一起进游戏过后互相看不见房间(不使用-S1则可以互相看见)。

        • Bug侠 评论于 回复

          @门刀臣
          客户端下 -S1 参数表示不使用P2P,强制使用服务器中转(UDP),一般情况下很少用到这个,我不太理解……
          根据你的情况,结合:https://bugxia.com/2518.html,我猜测是第二条报错吧,需要服务端添加 -M 参数启动

          • 门刀臣 评论于 回复

            @Bug侠
            谢谢大佬回复,因为我们P2P联机会很卡所以才尝试服务器中转,服务端的指令添加有-v和
            -m,但仍然会出现上面说的问题,使用服务器中转会导致互相看不到房间

            • Bug侠 评论于 回复

              @门刀臣
              1.那需要贴出完整的服务端日志了,不知道是哪里报错。
              2.什么游戏?我这边顺手测试了文明6和CS1.6,不管是中转还是P2P,都是正常看见并加入房间的。

              • 门刀臣 评论于 回复

                @Bug侠
                感谢大佬回复
                [2022-06-25 01:12:20] assign IP 172.26.2.157/24 to tap adaper of edge
                [2022-06-25 01:12:21] authentication failed
                [2022-06-25 01:12:25] authentication failed
                [2022-06-25 01:12:29] authentication failed
                [2022-06-25 01:12:33] authentication failed
                [2022-06-25 01:12:37] authentication failed
                服务端是这样的日志,然后过一小会就连上了,但是看不到房间,游戏是英灵神殿

                • Bug侠 评论于

                  @门刀臣
                  这个问题我还没遇到过,分别贴一下吧
                  1.supernode和edge版本
                  2.supernode、edge配置

              • 门刀臣 评论于 回复

                @Bug侠
                谢谢大佬那么耐心,服务端客户端都是v3.1版本.配置的话我不太懂是指电脑配置还是软件配置?
                客户端这边只有一个-I B6D7A548FA7E 附加参数 ,服务端的话只有-v -m, 因为我是第一次接触此类软件和技术,所以很多东西不懂还请见谅

  • 门刀臣 评论于 回复

    大佬您好,我用云服务器搭建了一个服务器以供连接,但是我的另外一个朋友A使用这个服务器和我联机游戏会很卡,于是想尝试您说的-S指令,请问是该用-S还是-S1呢

  • zhaixianyu 评论于 回复

    作者大大你好,windows服务端可以用TCP吗。我没有找到设置方法

    • Bug侠 评论于 回复

      @zhaixianyu
      Windows不管服务端还是客户端暂时不支持直接TCP连接~
      但是可以用其它方法将UDP转为TCP连接,坏处是就客户端没法P2P了

  • XJG 评论于 回复

    站长你好,我使用的一台win2012服务器作为服务端但是,客户机连接获取不到IP该如何解决

    • Bug侠 评论于 回复

      @XJG
      自定义IP可以用吗?几个排查:
      1.服务端指定IP段要正确(符合规则)
      2.服务端及客户端均使用建议v3

  • Minzia 评论于 回复

    请问这个服务端开了之后,在客户端上服务器那一栏填入的就是自己的服务端ip嘛

    • Bug侠 评论于 回复

      @Minzia
      对的,本机作为服务端的话,客户端服务器那里就是127.0.0.1:你的端口,或者公网IP:你的端口

  • 小黄 评论于 回复

    你好,不知N2N能否实现一台云服务器搭建虚拟局域网,两台手机不在同一个地方连上一起联机游戏呢,那款手机游戏有局域网联机模式

    • Bug侠 评论于 回复

      @小黄
      什么手机呢?N2N有安卓端,iOS的也有,我未测试。
      N2N虚拟网下的客户端,不限于所处的网络或设备等,只要在一个虚拟网内,都是可以互通的

      • 小黄 评论于 回复

        @Bug侠
        是安卓手机,就是我云服务器是CentOs的,按照本文步骤搭建完后 手机应该怎么连这台服务器呢 不知小组名啥的

        • Bug侠 评论于 回复

          @小黄
          已经写了教程了:https://bugxia.com/2601.html
          就记住一句话:联机双方,除了IP不一样,其他都一样

  • ShayInoue 评论于 回复

    大佬你好,我想请问一下,我可以在我唯一一台电脑上开启服务器,之后也在这台电脑上使用游戏端和朋友进行联机吗

    • Bug侠 评论于 回复

      @ShayInoue
      可以的,客户端同时也可以作为服务端

      • 玖墨 评论于 回复

        @Bug侠
        麻烦请问,本台电脑作为服务器已经启动了,还需要用客户端连接自己的服务器吗?还是其他小伙伴连接就可以进行游玩了,我开启服务器后,小伙伴能连接到我,但是我使用测试工具ping不通他输入的ip段

        • Bug侠 评论于 回复

          @玖墨
          1.什么游戏呢?
          2.不知道怎么解释,举个栗子吧,假设你们玩的是我的世界MC,你的电脑是MC的服务器同时也是N2N的服务器,记作A,朋友是B,首先,A运行N2N服务端,A和B都要加入N2N,这样你俩都在一个虚拟网里了;然后A运行MC建房,B在MC里输入A的虚拟IP就能进入
          3.既然都能连接上,ping也无所谓了啊……ping不通的原因参考:https://bugxia.com/2518.html

  • 评论于 回复

    您好,我想请问一下使用N2N进行我的世界联机,如果我的这个联机地图游玩世界较长肯定游戏里面的内容会越来越多,在加上其他玩家跑图,或者使用红石科技,到后期用这个来进行联机会变得非常卡顿。

    • 评论于 回复

      @杨
      用N2N联机后期会不会变得很卡顿

      • Orz 评论于 回复

        @杨
        这个是主机的问题,和N2N并无任何关联

        • 评论于 回复

          @Orz
          意思是说,和朋友建立连接之后,开启的联机网络是基于主机电脑配置和主机网络为基础吗。因为以前我用的是内网穿透游戏一到后期就卡的不行。

          • Bug侠 评论于 回复

            @杨
            瞎猜一下:
            1.不太确定你是联机卡顿还是电脑卡顿;
            2.我大概搜了一下相关的资料:可以确定的是,红石太多确实会影响联机卡顿。参考这篇:https://tieba.baidu.com/p/7779598993

          • Bug侠 评论于 回复

            @杨
            大概明白了,MC里所有方块的状态更新频率要同步,也就相当于实时的会有很多数据在传输,如果是像你的内网穿透,或者没有走P2P的N2N,就必须得经过服务器中转,服务器的带宽太小的,承受不了这么的并发量,所以卡顿。

  • iwantplay 评论于 回复

    你好,我想问下胡闹厨房这种可以用吗

    • Bug侠 评论于 回复

      @iwantplay
      不好意思,理论上是可以的,但是我没有测试胡闹系列 :害羞:

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