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

  • hz 评论于 回复

    您好,我自己用腾讯云的linux服务器 弄好过后,他虚拟网ip不自动分配,自己设置的话要怎么弄呢

    • uuu 评论于 回复

      @hz
      我Linux服务端启动参数是
      supernode -p 9999 -f -v -M -c /root/community.list
      community.list文件是指定了固定小组名称和对应的ip段
      你也可以去掉-c参数

  • 小李哥 评论于 回复

    大佬!能把Linux 的教程稍微的优化一下么!1、安装N2N这一步都能安装!2、安装完毕后如何启动。很多萌新都抓瞎了(比如说我T.T)!比如用什么命令,毕竟很多用户都只是希望联机,但是对Linux不是很熟悉,需要注意的东西麻烦大佬你幸苦一下!最好能出个B站视频!3连保证!

  • potten; 评论于 回复

    作者你好,请问能做一个docker版本的吗,想部署在群晖这些nas上。

  • baisi 评论于 回复

    你好,请问在同一服务端如何做到把两个小组的网络互通?我发现小组分开不能互相ping对面,是服务端没有路由表这种东西吗?

    • Bug侠 评论于 回复

      @baisi
      是的,即便在同一服务器下,不同的小组就代表是两个独立的虚拟局域网,是不互通的。如果要互通,必须得写路由表(所有具有互通需求的客户端均要自行添加),目前N2N不支持服务端自动给所有客户端下发路由表(但Zerotier就支持) :笑哭:

  • 评论于 回复

    你好 我这里测试都可以ping通 但是自己的服务器分配不到地址

  • mafuyu 评论于 回复

    你好,想请问一下,我这边自建服务器,连接显示成功,客户端也都可以ping通,但是就是服务器的延迟检测一直显示失败,其他的功能都是正常的,这个怎么办呢?公网接路由器,路由器端口转发了,公网IP有做了DDNS,N2N的服务器也是用域名:端口访问的。

    • Bug侠 评论于 回复

      @mafuyu
      EasyN2N内置的[服务器的延迟]功能是基于ICMP协议的通信测试,说人话就是PING
      如果你能用客户端系统自带的ping,成功ping通服务器,那这个功能也就是可用的。

  • yyt 评论于 回复

    您好,我在腾讯云自建了服务器,但是朋友连接后服务器一直显示assign IP xxx.xxx.xxx.xxx/24 to tap adapter of edge,他也ping不同自己;但是我使用是正常的,请问是什么问题。

    • Bug侠 评论于 回复

      @yyt
      原因未知,人数少的话,建议先自定义虚拟IP

  • 富贵 评论于 回复

    首先感谢bug侠提供了软件让我可以有更好的联机体验
    我玩的单机游戏比较吃流量 所以也自建了服务器
    但是游戏吃流量太大了 所以希望就算是用easyN2N 也能通过一些手段限制有限的用户
    我看服务端的指令有 (-M | 关闭非用户名密码认证的群组的MAC和IP地址欺骗保护功能)
    是不是意味着easyN2N的服务端也可以设定固定的频道名和用户/密码来做一些限制呢?

      • 富贵 评论于 回复

        @Bug侠
        感激不尽
        我使用的win客户端 community.list文件是自己创建的么?
        看了一下关于community.list文件的描述 不知道我下面这样是否正确
        ########start########
        #有2个组
        group[1-2]
        ### 123是我设置的账号
        * 1231 AOM3z+YkXmvwhmwXCh1hipf0ezuz40d2W7xcsPgGG3u
        ########end########
        但是看到后面描述客户端的设置有个-k 小组密码设置 没明白这个小组密码是如何设定的
        和客户端关于-A4和-A5的解释有点迷茫

      • 富贵 评论于 回复

        @Bug侠
        -p 58888
        -a 192.168.60.0-192.168.65.0/24
        -c D:\EasyN2N\community.list
        然后这个是我服务端的启动参数
        加了-c以后启动服务端 supernode_v3_bugxia_n2n.exe就停止运行了
        服务端是winserver 2012

        • 富贵 评论于 回复

          @富贵
          emmmm 停止运行是参数错误已经修改而且可以正确运行了
          没明白的还是-k如何填写
          还有使用group[1-2]这样的命名方式 下面的账号是可以同时登陆2个组么?

  • 评论于 回复

    01/Apr/2023 19:05:03 [n2n.c:56] ERROR: Bind error on local port 9527 [Address already in use]
    01/Apr/2023 19:05:03 [supernode.c:610] ERROR: failed to open auxiliary TCP socket, Address already in use
    这个该怎么办

  • qqd 评论于 回复

    大佬你好,如果我已经输入了supernode -p 9527 -f的命令,但是我忽然不想用9527这串数字,想换一个号码,应该怎么操作呢?

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