构建N2N

简介

N2N是一款轻量级P2P的VPN软件,采用UDP协议,通过服务端(Supernode)的协调,如果客户端(Edge)之间NAT条件允许,则可以直接通信,实现了低时延。所以特别适合用来和基友一起远程玩局域网联机游戏😁

环境条件

编译需要 :

运行 :

编译

第一步当然是下载源码了

1
git clone https://github.com/ntop/n2n

Windows

打开x64_x86 Cross Tools Command Prompt for VS 2019

cd到源码目录

1
2
3
md build
cd build
cmake ..

然后打开build目录下的n2n.sln

分别右键edge工程选择属性->配置属性->链接器->清单文件->UAC执行级别 在下拉列表框中选择:requireAdministrator

然后生成

需要Supernode也同样操作

Linux

在源码目录

1
2
3
./autogen.sh
./configure
make

即可编译出符合当前构架的可执行文件

其他编译详情

使用

服务端

也叫中心节点、超级节点

一般部署在有公网IP的服务器上

安全起见创建一个area文件,包含允许的网络群组(community),每行一个,将仅允许正确名称网络群组的客户端加入

1
./supernode -p 5678 -c area

-p后跟的是监听端口号

客户端

也叫边缘节点

方便起见创建一个文件来保存配置

edge.conf

1
2
3
4
5
6
7
8
9
10
#community 网络群组
-c=mycommunity
#key key正确的客户端互相可以通信
-k=mypassword
#supernode IP和端口
-l=111.111.111.111:5666
#edge address 客户端的局域网ip
-a=192.168.100.2
#设置跃点为1,可以更好的在局域网发现对方(游戏)
-x=1

Windows需要注意通信时对应程序的端口要在公用防火墙上开放(此VPN网络会被Windows设为未识别网络,Windows会将未识别的网络视为公用网络,应用公用防火墙规则)

ps 也可以去除-a参数让Supernode自动分配IP地址
pps 好像加上-A2参数使用Twofish加密会快一点?

给基友用的懒人包😑

安装.bat

1
2
3
4
5
6
7
8
9
10
11
12
@echo off
chcp 65001
title N2N依赖程序安装中请稍后...
color 3
mode con cols=55 lines=12
echo 弹出窗口请选择'安装'
vc_redist.x64.exe /q /norestart
tap-windows-9.21.2.exe /S
echo 依赖程序安装完成!
echo 请双击运行主程序edge.exe
title 现在可以关了这个窗口了:)
pause>nul

碰到新基友改edge.conf中的IP发给基友让他双击安装.bat就行了😉