GitHub - ntop/n2n: Peer-to-peer VPN · GitHub

GitHub - ntop/n2n: Peer-to-peer VPN · GitHub

Peer-to-peer VPN. Contribute to ntop/n2n development by creating an account on GitHub.

访问网站
我的收藏195 次访问更新于 a month ago反馈
GitHub - ntop/n2n: Peer-to-peer VPN · GitHub screenshot

详细介绍

简介

n2n 是一款由 ntop 维护的开源轻量级点对点(P2P)虚拟专用网络(VPN)软件,遵循 GPL-3.0 协议。它专为穿透中间防火墙、快速构建虚拟局域网而设计,能够让用户在复杂的网络环境中轻松实现多台设备的安全互通。

核心架构与工作原理

n2n 采用双组件架构,核心包含以下两个部分:

  • 超级节点(Supernode):负责边缘节点的注册、发现与广播。需部署在具备公网可访问端口的服务器上。
  • 边缘节点(Edge):实际加入虚拟网络的客户端设备。

多个边缘节点组成的虚拟网络被称为社区(Community)。单个超级节点可同时中继多个社区,单台计算机也可同时加入多个社区。在数据传输时,n2n 会优先尝试在边缘节点间建立直接的 UDP P2P 连接;若因特殊 NAT 或防火墙限制无法直连,则自动降级由超级节点进行数据包中继转发。

主要功能

  • 轻量高效:资源占用低,代码结构简洁,适合各类终端与服务器部署。
  • 灵活的社区隔离:支持自定义社区名称(-c)与加密密钥(-k),有效隔离不同业务或用户的网络环境。
  • 智能连接策略:优先直连降低延迟与中转负载,直连失败时自动无缝切换至超级节点中继。
  • 多平台兼容:原生支持 Linux,并提供 Windows 与 macOS 的编译与运行支持。多数 Linux 发行版已内置包,可通过包管理器一键安装。

安装与部署

快速安装
Linux 环境通常可直接通过系统包管理器安装(如 sudo apt install n2n)。若需获取最新稳定版,也可从 ntop 官方仓库获取。

快速组网示例
在两台主机上分别执行以下命令即可实现互通:

bash 复制代码
# 主机 1
sudo edge -c mynetwork -k mysecretpass -a 192.168.100.1 -f -l supernode.ntop.org:7777
# 主机 2
sudo edge -c mynetwork -k mysecretpass -a 192.168.100.2 -f -l supernode.ntop.org:7777

自建超级节点
生产环境强烈建议部署私有超级节点(如 VPS):

  1. 安装 n2n 服务
  2. 编辑 /etc/n2n/supernode.conf,配置监听端口(如 -p=1234
  3. 执行 sudo systemctl start supernode 启动服务,并可选 enable 设置开机自启
  4. 边缘节点启动时通过 -l your_supernode_ip:1234 指定该节点即可

源码编译
支持标准 Autotools 流程:./autogen.sh && ./configure && make。详细跨平台编译参数可参考项目官方构建文档。官方建议生产环境使用最新稳定版,dev 分支可能不保证向后兼容。

适用场景

  • 跨网段/跨地域办公组网:快速搭建临时或长期的内网互通通道,替代复杂的企业级 VPN 配置。
  • IoT 设备互联:轻量特性使其非常适合资源受限的嵌入式设备构建安全通信网络。
  • 开发测试与教学演示:无需额外硬件或复杂路由配置,即可在多台机器间模拟局域网通信。
  • 高限制网络穿透:有效应对严格 NAT、企业防火墙或移动网络环境下的直连需求。

安全说明

启用负载加密(提供 -k 密钥)后,超级节点无法解密边缘节点间传输的实际业务数据,但会知晓通信双方的节点身份。项目近期已增强可用加密算法的选择范围,用户可根据安全需求参考官方加密方案对比说明。为保障数据隐私并减轻公共节点负载,官方强烈建议:务必设置自定义的社区名与高强度加密密钥,并优先使用自建超级节点。