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

  • BaiGeiL0re 评论于 回复

    问问再Linux系统服务器上启动后如何停止呢?直接kill进程吗

  • GG 评论于 回复

    能出个魔兽争霸3的教程吗 ,ping通了和朋友,但是创建游戏还是在本地局域网

  • 咕咕 评论于 回复

    大佬可以做一种在面板服上运行N2N吗,是用jar包作为启动文件的服,没办法对文件过多的操作

    • GG 评论于 回复

      @咕咕
      请问一下魔兽争霸冰封王座联机,我和朋友都连上小黄鸭了,但是局域网创建没看到啊,版本是一样的

  • ZANE 评论于 回复

    n2n_seed faced error errno=38 from getrandom syscall 服务器开不起来,报这个错误,centOS 8.2

  • N2N爱好者 评论于 回复

    老哥,能不能打包个docker镜像啊,或者出个打包教程也行~ 这样NAS上也能用了,不限于游戏联机了。

  • Mr_T3K 评论于 回复

    你好bug侠大佬,我开了服务端了,看着也没啥问题,但客户端连接的时候一直在 send REGISTER_SUPER to supernode [113.13.15.29:9527] asking for IP address且一直获取不到虚拟ip地址,请问这种问题有什么解决方法吗?端口转发开着的,防火墙也关了。

  • yogrut 评论于 回复

    对比直接搭建,docker搭建会更快捷方便,易上手,希望大佬能做一下镜像包,感谢

  • yogrut 评论于 回复

    你好大佬,我是一个初学者想用docker镜像直接搭建服务器,但是我不会构建docker镜像,希望你能在百忙之中构建一下EasyN2N的docker镜像文件,

  • 石头 评论于 回复

    大佬,这是我服务端,进程是运行的,防火墙端口也放行了,安全组也添加了:
    [root ~]# ps aux | grep supernode
    n2n 2614 0.0 0.0 25180 1860 ? Ssl 17:46 0:00 supernode -p 9527
    root 2630 0.0 0.0 12132 1052 pts/0 S+ 17:52 0:00 grep –color=auto supernode
    [root ~]# netstat -nultp
    tcp 0 0 0.0.0.0:9527 0.0.0.0:* LISTEN 2614/supernode
    udp 0 0 0.0.0.0:9527 0.0.0.0:* 2614/supernode
    udp 0 0 127.0.0.1:5645 0.0.0.0:* 2614/supernode
    [root ~]# firewall-cmd –list-ports
    20/tcp 21/tcp 22/tcp 80/tcp 518/tcp 888/tcp 8001/tcp 8080/tcp 8888/tcp 39000-40000/tcp 518/udp 9527/udp
    客户端运行日志是:
    [2024-01-24 18:00:18] WARNING: NAT-PMP invalid response type 0
    [2024-01-24 18:00:18] WARNING: NAT-PMP failed to delete TCP port mapping for 0.0.0.0:52084
    [2024-01-24 18:00:31] WARNING: supernode not responding, now trying
    请您帮忙看看是怎么回事

    • Bug侠 评论于 回复

      @石头
      这……有点难搞,根据你的情况,好像每个步骤都没问题,只能逐个排查了。
      一般出现supernode not responding的问题,很大概率都是防火墙的原因,要不然先关闭防火墙,安全组里放行全部端口,然后再试试?
      确定一下是不是防火墙的原因,然后再通过别的方式排查,比如换一个网络环境(有时候客户端网络出口UDP受阻也会出现问题),只能瞎猜到这里了,不好意思。

      • 石头 评论于 回复

        @Bug侠
        大佬,感谢您的建议,目前我试了一下关闭防火墙开放安全组换设备网络,还是不行。
        但是值得一提的是我使用您免费提供的服务器是能成功的,所以我现在怀疑是版本不对应,这是我现在准备尝试的版本:
        windows客户端:n2n_client_windows_3.11_Pack.zip
        centos服务端:n2n-3.1.1-1.x86_64.rpm
        您看这样版本是对应的吗,还是您这里有更加推荐的对应版本组合

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