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

  • 克林 评论于 回复

    为什么我RPM安装后运行提示没有依赖项报错

  • ReDawn 评论于 回复

    啊,大佬我又来了
    我看用户小组边上名称里有个获取用户列表的按钮,有方法让我的自建服务器也拥有这个功能么?

    • Bug侠 评论于 回复

      @ReDawn
      自建服务器的话也是可以用的,这个功能和自建不自建没关系,调用的是本机客户端接口读取的数据

      • ReDawn 评论于 回复

        @Bug侠
        主要我现在试了下还是没法使用,感觉挺奇怪的,我cmd使用 arp –a倒是可以正常搜到

        • Bug侠 评论于 回复

          @ReDawn
          和你的服务端、客户端没关系,这是N2N还不完善的地方,它的读取机制和数据统计有问题

          • ReDawn 评论于 回复

            @Bug侠
            好的谢谢大佬

  • ReDawn 评论于 回复

    大佬您好!请问服务器分配ip的话有没有办法让服务器分配的都在一个网段内?我用的是腾讯云的服务器以及美国服务商reckLLD的服务器,都是Linux的

    • ReDawn 评论于 回复

      @ReDawn
      比如使用 supernode -p 9527 -a 192.168.233.0/24

      • Bug侠 评论于 回复

        @ReDawn
        N2N目前的这个-a参数有点难理解,下面的命令就是固定到一个233这个段内
        supernode -p 9527 -a 192.168.232.0-192.168.233.0/24
        另外还可以通过-c加载community.list文件,该文件里指定小组名对应的网段
        https://github.com/ntop/n2n/blob/dev/community.list

  • Assiandoan 评论于 回复

    @Bug侠 大佬我用的是腾讯云的服务器,然后开小黄鸭 让我和我的朋友联机,我笔记本的小黄鸭日志一直显示send REGISTER_SUPER to supernode [xxx.xx.xxx] asking for IP address 这是什么原因,在测试工具里面搜我的公网ip的ping还是有显示的

  • 月晨 评论于 回复

    您好,请问可以出一期ubuntu安装EasyN2N服务端吗
    谢谢

  • 一朵凶日葵 评论于 回复

    你好楼主,我搞了一个阿里云的服务器,然后运行报告出现了这个supernode not responding 该怎么解决,麻烦了

      • 一朵凶日葵 评论于 回复

        @Bug侠
        解决了已经,谢谢楼主,但是现在我和朋友连接正常,但是相互ping不通,防火墙都关了,该怎么解决呢

        • Bug侠 评论于 回复

          @一朵凶日葵
          不好意思啊,ping不通的问题除了防火墙的原因,还有很多不确定的因素,得具体分析,逐一排查

        • 卖菜小哥 评论于 回复

          @一朵凶日葵
          您好,请问您的问题解决了吗

  • CiXde 评论于 回复

    Bug侠你好,我看了教程之后发现这个p2p工具没有Linux客户端,虽然GitHub上有原生的n2n,但总体来说能不能够和easyn2n互联,在你的网站搜索了一遍,似乎也没有给出方法;因为有些游戏需要用到Linux服务器(比如求生之路2),而带公网的低延迟服务器的维护费和流量费比较贵(比如阿里云之类的),如果有写过教程的话可以提供一下吗?或者直接说明n2n和easyn2n可以直接互联也可以,谢谢!

    • Bug侠 评论于 回复

      @CiXde
      哪个P2P工具没有Linux的?N2N几乎全平台都可以使用的。
      EasyN2N其实就是N2N的GUI工具,本质没有区别的。
      并且EasyN2N和Linux下的N2N都可以互通的(supernode、edge版本要一致)
      根据你的需求,就是某台服务器跑L4D2的服务端,该服务器同时也跑N2N,作为虚拟局域网的主机,局域网下的其他主机就可以通过N2N加入其中,对吧

      • CiXde 评论于 回复

        @Bug侠
        是的,那按照你的意思,小组名称和小组密码这些参数就要在:其他功能 –> 常用功能 –> 附加参数 里面写入了,是这样吗?

        • Bug侠 评论于 回复

          @CiXde
          小组名称在主界面(必填),小组密码 -k 参数(可选)需要手动在附加参数里添加

          • CiXde 评论于 回复

            @Bug侠
            好的,谢谢。顺便补充一下,CentOS 7、8已经停止更新了,而后续的CentOS系统也属于滚动更新,不再有大版本的系统。
            在Debian 11系统的安装rpm方法如下:
            sudo apt-get install -y libzstd-dev alien
            sudo alien -i n2n-3.0.0-1038.x86_64.rpm
            —————————————————–
            安装完成后执行
            sudo /usr/sbin/supernode + 参数
            或者
            sudo /usr/sbin/edge + 参数

            我的服务器已经在Debian 11搭建成功了,最后感谢Bug侠提供的Windows图形界面工具和免费服务器

            • Bug侠 评论于 回复

              @CiXde
              感谢支持~感谢补充~

  • SH ghost 评论于 回复

    可以使用sakura frp端口映射来组建服务端吗

  • 小明 评论于 回复

    WARNING: supernode not responding, now trying [ip地址
    防火墙也关了,安全组也放行了UDP 9527
    ip设置了也连不上 看服务器那边正常启动和运行
    02/Jan/2023 12:02:29 [sn_utils.c:136] calculated shared secrets for edge authentication
    02/Jan/2023 12:02:29 [supernode.c:604] supernode is listening on UDP 9527 (main)
    02/Jan/2023 12:02:29 [supernode.c:613] supernode opened TCP 9527 (aux)
    02/Jan/2023 12:02:29 [supernode.c:620] supernode is listening on TCP 9527 (aux)
    02/Jan/2023 12:02:29 [supernode.c:629] supernode is listening on UDP 5645 (management)
    02/Jan/2023 12:02:29 [supernode.c:641] dropping privileges to uid=987, gid=982
    02/Jan/2023 12:02:29 [sn_utils.c:807] successfully created resolver thread
    02/Jan/2023 12:02:29 [supernode.c:659] supernode started

  • 风色幻想 评论于 回复

    请问双方连接成功后 数据传输速率是由双方的带宽上限决定的吗?那国内服务器好贵啊

    • Bug侠 评论于 回复

      @风色幻想
      1.如果是中转模式,速率上限取决于服务器的带宽
      2.如果是P2P模式,一般就是你本地宽带的上行带宽

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