首页 > 其他分享 >使用n2n自建虚拟局域网,解决游戏联机问题

使用n2n自建虚拟局域网,解决游戏联机问题

时间:2023-08-22 15:11:04浏览次数:64  
标签:中继 联机 n2n 局域网 Edge 服务器 节点

背景

在我们玩魔兽争霸,cs1.6这种老游戏通常是通过局域网联机,现在也有很多游戏是通过p2p进行联机比如博德之门3,雨中冒险2等等,在这个时候我们缺少一个局域网的环境,各种传统的网游加速器可能作用不太大了,这个时候我们可以考虑通过n2n,自组一个虚拟局域网,可以保证游戏的流畅不丢包。

n2n示意图:
n2n示意图

其中这里有两个重要概念:

Supernode(超级节点): 超级节点是在 n2n 网络中具有特殊角色的节点。它通常是具有公网 IP 地址的节点,它们用于帮助建立和维护 n2n 网络中的连接。超级节点充当了中继服务器的角色,它们允许处于不同子网中的 Edge 节点建立连接,即使它们无法直接进行通信。超级节点维护一个节点列表,帮助节点发现和连接其他节点,从而构建了一个点对点的加密通信网络。

Edge(边缘节点): 边缘节点是 n2n 网络中的普通节点,它们是实际的数据发送和接收节点。Edge 节点连接到超级节点,并通过超级节点来与其他 Edge 节点建立连接。当数据需要在不同节点之间传递时,Edge 节点会通过超级节点进行中继传输。在 n2n 中,每个 Edge 节点都可以与其他节点直接通信,而不必依赖集中式服务器。

所以呢,作为玩家,我们只需要关注边缘节点如何连接中继服务器就行了,网上有一些免费公开的中继服务器(supernode),当你和好伙伴都连接到同一个服务器,并设置好对应的配置,则可以实现虚拟局域网

而作为比较喜欢折腾和有动手的能力的同学,对免费公开的中继服务器延迟等不太满意,可以自己搭建一个中继服务器,并且本文章将在最后分享我自己在使用的一套方案

如何连接n2n的中继服务器,和好伙伴愉快联机

这里我是使用EasyN2N,一个强大的软件,提供了n2n的ui界面,并集成PING、TCP\UDP、iPerf、NAT类型等测试套件
EasyN2N: https://bugxia.com/357.html

我们启动EasyN2N

点击自定义服务器,输入自己搭建的服务器地址,或者获取免费的也可以
点击右上角时钟图标可以查看延迟

然后和小伙伴协商一个名称,需要都填一样
然后点击启动
当有绿色小勾则表示连接成功了

若无法ping通,可能是电脑防火墙没放行

如何构建n2n的中继服务器(supernode)

拥有一个公网ip

可以购买云服务器,或者内网穿透,等等,网上都有教程,建议国内云服务器,低延迟且不掉包
这里我使用国内某云服务器作为演示,操作系统是 Ubuntu 22.04.1 LTS

n2n安装

有多种方式
github项目地址:
https://github.com/ntop/n2n/

  1. release下载安装
wget https://github.com/ntop/n2n/releases/download/3.0/n2n_3.0.0-1038_amd64.deb
sudo dpkg -i n2n_3.0.0-1038_amd64.deb
  1. 自己构建源码
git clone https://github.com/ntop/n2n.git
cd n2n 
./autogen.sh
./configure
make

supernode 启动

启动非常简单
supernode -p [端口]

# 比如运行在8333端口
supernode -p 8333

记得防火墙开放8333端口的UDP
然后就大功告成了,

标签:中继,联机,n2n,局域网,Edge,服务器,节点
From: https://www.cnblogs.com/37kiazz73/p/17648376.html

相关文章

  • 外网连接局域网的几种方式?快解析内网穿透安全便利吗?
    外网连接局域网是一项网络连接中的关键技术,它能够让远程用户通过互联网访问内部局域网中的资源和服务。外网连接局域网为企业提供了更大的灵活性和便捷性,但也需要严格的安全措施来防止未经授权的访问。 外网连接局域网的几种方式在将外网连接到局域网时,有三种常见的方式,那就是端口......
  • xamarin.Android:获取局域网络
    通过Java.Net层,调用Java接口///<summary>///获取网络列表///</summary>privateDictionary<string,NetworkInfoBean>GetNetworkInfoList(){Dictionary<string,NetworkInfoBean>result=newDictiona......
  • 局域网中如何根据ipv6本地链接地址(fe80::)得到邻居设备的MAC地址
    局域网开通IPv6支持后,服务器共享文件夹会话列表中,有些用户显示的机器名是ipv6本地连接地址(fe80开头),难以确定计算器是哪个,问了下GoogleBard,得到解决方案如下:Window中打开Powershell,执行以下命令:netshintipv6showneighbors输出结果如下(仅截取部分):接口1:Loopbac......
  • Windows电脑怎么设置局域网内共享磁盘?
    前言:我有一台主机硬盘容量比较大,想做为一个共享硬盘,方便我其他笔记本能够往这台硬盘传输文件,想到的最好最快的方法就是通过局域网内部进行文件传输。通过局域网共享磁盘,这种方法也是非常便捷的。那如何设置操作呢?请详细看下文。局域网共享磁盘,共享文件的电脑主机需要链接相同的网......
  • Windows电脑怎么设置局域网内共享磁盘?
    前言:我有一台主机硬盘容量比较大,想做为一个共享硬盘,方便我其他笔记本能够往这台硬盘传输文件,想到的最好最快的方法就是通过局域网内部进行文件传输。通过局域网共享磁盘,这种方法也是非常便捷的。那如何设置操作呢?请详细看下文。局域网共享磁盘,共享文件的电脑主机需要链接相同......
  • windows server对新增硬盘的联机及设置ntfs
    windowsserver对新增硬盘的联机及设置ntfs,记录#获取所有脱机或在线但没有分区的磁盘$disks=Get-Disk|Where-Object{($_.OperationalStatus-eq'Offline'-or$_.OperationalStatus-eq'Online')-and$_.PartitionStyle-eq'Raw'}foreach($diskin$disks){......
  • esp32 mqtt 局域网 通信 测试通过
    #include<WiFi.h>#include<stdlib.h>#include"WiFiClientSecure.h"#include"Adafruit_MQTT.h"#include"Adafruit_MQTT_Client.h"#include<ArduinoJson.h>#defineWLAN_SSID"xxx"#defineWLAN_PA......
  • odoo系统局域网及外网访问?快解析内网穿透方案教程
    首先,带着大家了解一下odoo是什么?前身是OpenERP。Odoo是一个广泛使用的开源ERP(企业资源规划)系统,它的主要特点之一就是高度模块化的设计。此套装可满足中小型企业的一切应用需求,例如,企业基本的进销存、采购、销售、MRP生产制造、产品保质量保障、企业招聘、员工合同、休假、午餐管......
  • odoo系统局域网及外网访问?快解析内网穿透方案教程
    首先,带着大家了解一下odoo是什么?前身是OpenERP。Odoo是一个广泛使用的开源ERP(企业资源规划)系统,它的主要特点之一就是高度模块化的设计。此套装可满足中小型企业的一切应用需求,例如,企业基本的进销存、采购、销售、MRP生产制造、产品保质量保障、企业招聘、员工合同、休假、午餐管......
  • python 获取本机IP(公网,局域网)
    获取公网IP1importrequests2importre3res=requests.get("https://myip.ipip.net",timeout=5).text4ip=re.findall(r'(\d+\.\d+\.\d+\.\d+)',res)[0]5print(ip)获取局域网IP1importsocket23res=socket.gethostbyname(socket.g......