【相关链接】
N2N项目
N2N自建节点
Windows客户端启动器
客户终端附加参数
https://bugxia.com/n2n_launcher_param
服务终端附加参数
https://bugxia.com/n2n_supernode_param
【N2N自建节点开始教程】
教程相关环境如下
系统【CentOS7】
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
启动节点
【后台运行】
supernode -p 节点端口
【前台运行】
supernode -p 节点端口 -f
服务器防火墙放行
【firewalld】
firewall-cmd --zone=public --add-port=节点端口/udp --permanent
firewall-cmd --reload
iptables
iptables -I INPUT -p udp --dport 节点端口 -j ACCEPT
service iptables save
service iptables restart
ufw
ufw allow 节点端口/udp
阿里云、腾讯云等其他云还得记得去官网上把防火墙也放行才能正常使用
【附加参数】
【客户终端附加参数】
常规参数
-c 组名称 | 用于区分虚拟局域网
-l 服务端(supernode):端口 | N2N的服务端(中心节点)
-p 本机UDP端口 | 绑定本机指定的UDP端口,防止部分环境下对UDP限制影响N2N组网
-D | 启用PMTU发现。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 参数,则默认为 AES 加密算法;如需不加密,需单独指定 -A1 参数
-k 组密码 | 用于虚拟局域网内传输的数据加密,留空则不加密
-A1 | 关闭局域网内传输的数据加密
-A2 | 使用 twofish 加密算法加密传输的数据
-A3 | 使用 AES 加密算法加密传输的数据
-A4 | 使用 chacha20 加密算法加密传输的数据
-A5 | 使用 Speck-CTR 加密算法加密传输的数据
-H | 数据包报头完整加密
-H 参数需要配合服务端的 -c 参数使用。服务端 -c 指定一个文本路径(该文本内容需包含允许连接的小组名称)
客户端使用上述文本内的小组名称,-H 参数即可启用
压缩相关
若不指定,则不压缩数据
-Z1 | 使用 LZO(1x) 压缩算法压缩传输的数据
-Z2 | 使用 ZSTD 压缩算法压缩传输的数据
【服务终端附加参数】
-p 端口 | Supernode监听端口,默认 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
-t 端口 | 用于管理supernode
--management_password 文本 | 管理端的密码
-v | 输出更多日志
评论