使用N2N搭建虚拟局域网进行游戏联机(服务端及客户端)

简介: 使用N2N搭建虚拟局域网进行游戏联机
目前主流的格斗游戏一般都是采用的P2P方式进行对战,国内的网络环境参差不齐,游戏对战体验极差,主流的加速器也仅仅是加速了大厅,对于对局并没有加速效果.最终在大佬的推荐下找到了N2N!

版本选择

N2N存在众多的版本,如v1v2v3v2s,如何选择适合自己的版本呢?

V1

此版本为官方N2N项目v1版本的修改版,最后一次Commit2017年,目前已被弃用,不建议使用。

V1项目地址:https://github.com/meyerd/n2n/tree/master/n2n_v1

V2

官方N2N项目重启后,在各路大神的贡献下,一直在维护并不断完善的版本,也是目前最常用的版本

V2项目地址https://github.com/ntop/n2nV

V3

官方的另一个新版本,使用人数较少,这里不多赘述了。

V2S

此版本为官方N2N项目v2版本(v2项目重启前)的修改版,最后一次commit2018年,极小部分用户仍在使用,但是此版本确是效果最好的,也是本文选择的版本。

V2S的优点:

1、更容易直连。

2、建立非中转的连接以后,关闭中心节点,只要有通讯,连接关系就不会断。

V2S项目地址https://github.com/meyerd/n2n/tree/master/n2n_v2

已编译版本下载

lucktu大神收集并整理了网友上传编译的可执行版本,包含WindowsLinux(包含ARM)、MacAndroid等。

已编译版本下载地址: https://github.com/lucktu/n2n

V2S服务端安装及运行

前往https://github.com/lucktu/n2n 下载已编译的V2S服务端版本(supernood)并上传至服务器解压。

修改文件权限为777

sudo chmod 777 supernood

运行服务端程序

supernode -l 端口号 -f
参数说明
-l 指定监听的端口
-f 前台运行(若不加该参数,则为前台运行)
-u 指定运行所用的UID(可选)
-g 指定运行所用的GID(可选)
-v 输出比较详细的log(可选)

服务端如开启iptables\firewalld\ufw等防火墙,需要放行supernode所设置的端口,否则客户端无法连接,若端口为8888则按着以下设置。

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

V2S客户端使用

前往https://github.com/lucktu/n2n 下载已编译的V2S对应客户端版本(edge.exe)。

进入edge.exe文件所在目录,使用CMDpowershell管理员模式执行以下命令

edge  -a 10.10.10.10(使用的内网网关IP(随意填写)) -c username(使用的用户名,连接双方需保持一致) -k password(使用的密码,连接双方需保持一致) -r  -l 1.1.1.1:8888(服务器IP及端口)

如之前未安装过虚拟网卡驱动,则还需要安装虚拟网卡驱动。

虚拟网卡驱动下载地址:http://build.openvpn.net/downloads/releases/tap-windows-9.21.2.zip

关于N2N的传输方案

直连

当你和朋友的网络环境比较纯净,NAT状态良好(比如同城市同电信宽带)的情况下,N2N会在参与方之间建立P2P连接

所有的通信都不会经过服务器,延迟能够极大程度降到最低

中转

相反,当参与方网络环境相对复杂(比如校园网,有多层交换),就无法建立P2P连接,所有的通信都会经过服务器来中转

中转模式下,A到B的延迟 ≈ A到服务器的延迟 + B到服务器的延迟

通过NAT类型解释传输方案

1.双方中只要有一方是Full Cone,可以直连
2.双方都是Restricted ConePort Restricted Cone,这种情况可以打洞,通过N2N服务器握手以后,双方的数据不再经过服务端
3.一方为Restricted Cone,另一方为Symmetric NAT,可以打洞,通过N2N服务器握手以后,双方的数据不再经过服务端
4.一方为端口Port Restricted Cone,另一方为Symmetric NAT,这种情况无法打洞,数据要走N2N服务器中转
5.双方都为Symmetric NAT,这种情况也是无法打洞的,数据要走N2N服务器中转

本文参考:bug侠

本文参考:恩山论坛

目录
相关文章
|
弹性计算 网络协议 安全
【图文教程】阿里云服务器开放端口设置(超详细)
阿里云服务器端口怎么打开?云服务器ECS端口在安全组中开启,轻量应用服务器端口在防火墙中打开,阿里云服务器网以80端口为例,来详细说下阿里云服务器端口开放图文教程,其他的端口如8080、3306、443、1433也是同样的方法进行开启端口:
47783 2
|
Java Linux 定位技术
Minecraft配置文件参数说明(JAVA服务器篇)
Minecraft JAVA版服务器启动后会生成server.properties配置文件,位于minecraft_server/根目录下。该文件包含多项关键设置,如游戏模式(gamemode)、最大玩家数(max-players)、难度(difficulty)等。此文档详细说明了各配置项的功能与默认值,帮助用户高效管理服务器环境。
3874 62
|
缓存 监控 Linux
Linux配置成代理服务器
代理服务器(Proxy Server)是一种位于计算机网络中的中间服务器,它充当了客户端和目标服务器之间的中介,用于转发客户端请求并获取目标服务器的响应。代理服务器的主要功能包括以下几点:
8505 1
|
Linux 数据安全/隐私保护 C语言
新手向导:轻松离线搭建最新版OpenVPN(含一键安装脚本)
OpenVPN 是常用的虚拟私有网络工具,通过 Docker 搭建非常简单。但常用的 kylemanna/openvpn 镜像已三年未更新,停留在 OpenVPN 2.4 版本。为了升级到最新版本(如 2024 年 2 月发布的 v2.6.9),可以通过官方开源社区获取最新安装包并手动编译安装。步骤包括安装依赖、下载并编译 OpenSSL 和 OpenVPN、生成证书和配置文件等。此外,GitHub 上有一键安装脚本 openvpn-install.sh,简化了安装过程,但其版本可能不是最新的。安装完成后,还需配置 iptables 以确保客户端能正常使用代理网络。
16872 1
|
Ubuntu Linux Android开发
termux+anlinux+Rvnc viewer来使安卓手机(平板)变成linux服务器
本文介绍了如何在Android设备上安装Termux和AnLinux,并通过这些工具运行Ubuntu系统和桌面环境。
4738 3
termux+anlinux+Rvnc viewer来使安卓手机(平板)变成linux服务器
|
安全 Linux 数据安全/隐私保护
阿里云镜像仓库:拉取和推送Docker镜像
阿里云镜像仓库:拉取和推送Docker镜像
43903 2
阿里云镜像仓库:拉取和推送Docker镜像
|
Java 应用服务中间件
idea tomcat 日志 中文 乱码【已解决】
idea tomcat 日志 中文 乱码【已解决】
1358 0
|
Ubuntu Linux 网络安全
Docker&Docker Compose安装(离线+在线)
Docker&Docker Compose安装(离线+在线)
24747 1
|
Ubuntu 网络协议 Linux
Linux下快速搭建七日杀官方私人服务器教程
本文提供了一份详尽的《七日杀》服务器搭建指南,专为Linux系统设计。教程分为九大部分,涵盖从前期准备到服务器维护的全过程。主要内容包括:选择具备公网IP的云服务器、安装Ubuntu 20 X64系统、下载SteamCMD等必备软件;详细指导如何配置服务器、设置防火墙及端口规则、启动与关闭服务器;此外还提供了服务器管理、环境配置(如设置swap分区)等实用技巧。适合有一定Linux基础的玩家参考实践。