局域网游戏实现远程联机?n2n搭建虚拟局域网教程

众所周知,部分单机游戏并没有服务器,也不支持自己开服。想要实现远程联机,则需要依赖虚拟局域网,来实现在公网下的局域网游戏远程联机。

本文所需文件可在文章结尾自取

服务端配置

Windows(手动部署)

首先需要下载并安装tap网卡,并根据自己的系统版本安装。

cd到下载目录,执行tapinstall install win10\OemVista.inf tap0901 进行安装。

下载supernode,打开命令提示符,执行supernode -p 9527 即可开启n2n的服务端(记得开放9527端口)。

一些supernode可用的参数

常规参数

-p 端口:指定 Supernode 监听的 UDP 端口,默认是 7654,可根据需要修改以避免端口冲突。
-F federation名称:设置 Supernode federation 的名称,默认为 *Federation ,自定义名称可增强网络识别。
-l 主机:端口:与 -F 配合使用时,可指定一台已知的 Supernode 地址和端口,方便其他节点连接以构建网络。
-M:关闭非用户名密码认证的群组的 MAC 和 IP 地址欺骗保护功能,适用于某些特殊场景,但在安全性要求较高的环境下谨慎使用。
-V 文本:自定义最长 19 位的字符串,在管理输出日志中展示,便于区分和识别多个服务实例。
-c 组名称配置文件路径:指定包含允许使用的组名称的配置文件路径,可限制只有文件中列出的组能接入网络。
-a IP段:用于自动分配 IP,格式如 -a 192.168.0.0-192.168.255.0/24,方便客户端接入时自动获得 IP 地址。
-t 端口:用于管理 Supernode 的端口,可用于本机同时运行多个 edge 时,便于对服务端进行管理操作。
--management_password 文本:设置管理端的密码,增强管理操作的安全性。
-v:输出更多日志,便于排查问题和调试。

虚拟网卡相关参数

-a 获取 IP 的模式:若需自定义虚拟 IP,使用 -a IP 地址 来指定;若留空且服务端支持,则可自动获取。
-m MAC 地址:设置 N2N 虚拟网卡的 MAC 地址,可防止和虚拟网下的其他机器重复。
-d tun 网卡名称:指定本机的 N2N 网卡,若本机存在多个 Tap 网卡时可使用,或留空让程序自动搜寻。
-M MTU 值:设置 N2N 虚拟网卡的 MTU 值,默认是 1390,可调整以适应不同网络环境。
-r:通过 n2n 社区启用数据包转发,便于不同节点间的数据传输。
-E:接受多播 MAC 地址,默认是丢弃,根据需求可选择是否启用多播功能。
-I 一些文字:客户端的文字描述,在管理端日志输出中更容易识别不同的客户端。
-x 数字:设置虚拟网卡的跃点数,可帮助优化联机游戏等对网络延迟敏感的应用。

加密相关参数

-k 组密码:用于虚拟局域网内传输的数据加密,留空则不加密。可选择加密算法如 AES、twofish、chacha20、Speck-CTR 等,保障数据传输的安全性。
-A1:关闭局域网内传输的数据加密,适用于对安全性要求较低或网络环境相对安全的场景。
-H:数据包报头完整加密,配合服务端的 -c 参数使用,可进一步增强数据的保密性。

其他参数

-D:启用 PMTU 发现,可减少网络中的数据包碎片,但在某些环境下可能会导致连接暂停,需根据实际网络情况选择是否使用。
-e IP 地址:作为首选播发提供的本地 IP 地址,若多播对等检测不可用时很有用,"-e auto" 参数则尝试 IP 地址自动检测。
-S1:不使用 P2P 连接,总是使用 UDP 模式通过 Supernode 中转,不推荐使用,因为可能会影响网络性能。
-S2:不使用 P2P 连接,总是使用 TCP 模式通过 Supernode 中转,Windows 不支持该参数。
-i 秒:设置 NAT 打孔间隔,默认是 20 秒,可根据网络环境和需求进行调整。
-L TTL 值:当 UDP NAT 打孔通过服务端时注册包的 TTL,默认为 0,表示不设置,可根据需要调整以控制数据包在网络中的生存时间。
-n 路由表:附加路由表,格式为目标 IP 段:网关,可多次调用。可帮助优化数据传输路径,提高网络效率。
--no-port-forwarding:关闭 UPnP/PMP 功能,防止自动端口映射,适用于某些对网络安全有特殊要求的环境。

Windows(使用EasyN2N)

打开软件,点击其他功能,点击服务端,点击开启即可

Linux部署

本人所使用的服务器为Ubuntu 22.04,其他系统可能需要自行改变下命令

执行以下命令,编译和安装n2n服务端

# 安装必要的依赖
apt-get update
apt-get install -y autoconf automake libtool git build-essential kernel-headers-$(uname -r)

# 下载n2n源码
wget https://github.com/ntop/n2n/archive/refs/tags/3.0.tar.gz

# 解压源码
tar xzvf 3.0.tar.gz

# 进入源码目录
cd n2n-3.0

# 运行autogen脚本
./autogen.sh

# 配置编译环境
./configure

# 编译并安装
make && make install

然后执行supernode -p 9527即可开服

 

客户端配置

Windows(手动部署)

下载edge,执行edge -c 小组名 -l IP:Port 即可连接

一些edge可用的参数

常规参数

-c 组名称 :用于区分虚拟局域网,所有加入同一虚拟局域网的客户端和服务器都必须使用相同的组名称。
-l 服务端(supernode):端口 :指定 N2N 的服务端(中心节点)的 IP 地址和端口,客户端通过该地址连接到服务端。
-p 本机 UDP 端口 :绑定本机指定的 UDP 端口,可防止部分环境下对 UDP 限制影响 N2N 组网。
-D :启用 PMTU 发现,可减少碎片,但在不正确支持时会导致连接暂停。
-e IP 地址 :作为首选播发提供的本地 IP 地址,如果多播对等检测不可用,则很有用,“-e auto” 参数则尝试 IP 地址自动检测。
-S1 :不使用 P2P 连接,总是使用 UDP 模式通过 supernode 中转,不推荐使用。
-S2 :不使用 P2P 连接,总是使用 TCP 模式通过 supernode 中转,Windows 不支持该参数。
-i 秒 :设置 NAT 打孔间隔,默认为 20 秒。
-L TTL 值 :当 UDP NAT 打孔通过服务端(中心节点)时注册包的 TTL,默认为 0,表示不设置。
-v :输出更详细的日志,便于排查问题和调试。
-t 端口 :管理 UDP 端口,用于本机同时运行多个 edge 时。
-n 路由表(格式:目标 IP 段:网关) :附加路由表,可多次调用,例如:-n 192.168.2.0/24:192.168.6.5。
--no-port-forwarding :关闭 UPnP/PMP 功能,防止自动端口映射。

虚拟网卡相关参数

-a 获取 IP 的模式 :如需自定义虚拟 IP,使用 -a IP 地址 来自定义虚拟 IP,如需自动获取(需服务端支持),留空即可。
-m MAC 地址 :设置 N2N 虚拟网卡的 MAC 地址,可防止和虚拟网下的其他机器重复。
-d tun 网卡名称 :指定本机的 N2N 网卡,如果本机存在多个 Tap 网卡,可以使用此参数自定义,或留空使程序自动搜寻。
-M MTU 值 :N2N 虚拟网卡设置 MTU 值,默认为 1390,可通过调整优化网络传输效率。
-r :通过 n2n 社区启用数据包转发,便于不同节点间的数据传输。
-E :接受多播 MAC 地址,默认是丢弃,根据需求可选择是否启用多播功能。
-I 一些文字 :客户端的文字描述,在管理端日志输出中更容易识别不同的客户端。
-J 密码 :客户端的密码,用于需要用户名密码认证的 supernode。
-P 密钥 :多个 supernode 组成联盟时,需要填入该参数以便认证。
-x 数字 :设置虚拟网卡的跃点数,以便于更好的联机游戏,默认为 0,自动。

加密相关参数

-k 组密码 :用于虚拟局域网内传输的数据加密,留空则不加密。若不指定 -k 参数或仅有 -k 参数,则默认为 AES 加密算法。
-A1 :关闭局域网内传输的数据加密。
-A2 :使用 twofish 加密算法加密传输的数据。
-A3 :使用 AES 加密算法加密传输的数据。
-A4 :使用 chacha20 加密算法加密传输的数据。
-A5 :使用 Speck-CTR 加密算法加密传输的数据。
-H :数据包报头完整加密,需配合服务端的 -c 参数使用。

压缩相关参数

-Z1 :使用 LZO(1x) 压缩算法压缩传输的数据。
-Z2 :使用 ZSTD 压缩算法压缩传输的数据。

Windows(使用EasyN2N)

直接在图形化界面填写服务端和小组名即可

文件下载

download
来源:蓝奏云 | 提取码:4jzt
THE END