ntop/n2n

GitHub: ntop/n2n

一款轻量级点对点 VPN 工具,通过超级节点实现 NAT 穿透,快速构建加密虚拟网络。

Stars: 6858 | Forks: 1008

[![构建状态](https://travis-ci.org/ntop/n2n.png?branch=dev)](https://travis-ci.org/ntop/n2n) # n2n n2n 是一款轻量级 VPN 软件,可以轻松创建绕过中间防火墙的虚拟网络。 为了开始使用 n2n,需要两个要素: - 一个 _supernode_(超级节点):它允许边缘节点宣告和发现其他节点。它必须具有一个可在互联网上公开访问的端口。 - _edge_(边缘)节点:将成为虚拟网络一部分的节点 在 n2n 中,多个边缘节点之间共享的虚拟网络称为 _community_(社区)。单个超级节点可以中继多个社区,单台计算机也可以同时属于多个社区。边缘节点可以使用加密密钥来加密其社区内的数据包。 n2n 尝试在可能的情况下通过 UDP 在边缘节点之间建立直接的点对点连接。当这不可能时(通常由于特殊的 NAT 设备),超级节点也会被用来中继数据包。 ## 快速设置 某些 Linux 发行版已经提供了 n2n 软件包,因此只需执行 `sudo apt install n2n` 即可。或者,大多数发行版的最新软件包可在 [ntop 仓库](http://packages.ntop.org/) 中找到。 在 host1 上运行: ``` $ sudo edge -c mynetwork -k mysecretpass -a 192.168.100.1 -f -l supernode.ntop.org:7777 ``` 在 host2 上运行: ``` $ sudo edge -c mynetwork -k mysecretpass -a 192.168.100.2 -f -l supernode.ntop.org:7777 ``` 现在这两台主机可以互相 ping 通。 **重要提示**:强烈建议选择自定义的社区名称(`-c`)和密钥(`-k`),以防止其他用户连接到您的计算机。为了您发送数据的隐私并减少 `supernode.ntop.org` 的服务器负载,也建议按照下文说明设置自定义超级节点。 ## 设置自定义 Supernode 您可以通过在公共服务器(例如 VPS)上设置超级节点来创建自己的基础设施。您只需要在防火墙(通常是 `iptables`)上打开单个端口(下例中为 1234)。 1. 安装 n2n 软件包 2. 编辑 `/etc/n2n/supernode.conf` 并添加以下内容: -p=1234 3. 使用 `sudo systemctl start supernode` 启动超级节点服务 4. (可选)启用超级节点开机自启:`sudo systemctl enable supernode` 现在超级节点服务应该在端口 1234 上启动并运行了。在您的边缘节点上,现在可以指定 `-l your_supernode_ip:1234` 来使用它。所有边缘节点必须使用相同的超级节点。 ## 手动编译 在 Linux 上,从源代码编译非常简单: ``` ./autogen.sh ./configure make # 可选安装 make install ``` 有关 Windows、MacOS、优化和常规构建选项,请查看[构建文档](doc/Building.md)以了解编译和运行说明。 **重要提示**:通常建议使用[最新稳定版本](https://github.com/ntop/n2n/releases)。请注意,当前的 _dev_ 分支通常不保证与最新稳定版本或之前的 _dev_ 状态向后兼容。另一方面,如果您敢于尝试前沿功能,鼓励您从 _dev_ 分支编译——只需留意有时会发生快速变化。欢迎在 _Issues_ 部分提供反馈。 ## 安全注意事项 当启用负载加密(使用 `-k` 提供密钥)时,超级节点将无法解密两个边缘节点之间交换的流量,但它会知道边缘 A 正在与边缘 B 通信。 可应用于负载的加密方案选择最近已得到增强。请查看[加密说明](doc/Crypto.md)中的快速比较图表以帮助做出选择。n2n 边缘节点默认使用 AES 加密。可以使用 `-A_` 选项选择其他加密算法。 如果使用源代码编译,可以通过 `tools/n2n-benchmark` 查看加密方法的基准测试。 包含一些元数据(如边缘节点的虚拟 MAC 地址、IP 地址、真实主机名和社区名称)的头部可以选择通过在边缘节点上应用 `-H` 选项进行加密。 ## 高级配置 有关社区、多超级节点支持、路由、流量限制以及如何将边缘节点作为服务运行等更多信息,请参阅[更详细的文档](doc/Advanced.md)。 ## 延伸阅读与相关项目 可以在我们的 [FAQ 文档](https://github.com/ntop/n2n/blob/dev/doc/Faq.md)中找到常见问题的解答。 以下是连接到此仓库的第三方项目列表: - Windows 预编译二进制文件集合:[lucktu](https://github.com/lucktu/n2n) - Android 版 n2n:[hin2n](https://github.com/switch-iot/hin2n) - Docker 镜像:[Docker Hub](https://hub.docker.com/r/supermock/supernode/) - 用于 n2n 边缘节点和超级节点的 Go 绑定、管理守护进程和 CLI,以及 Docker、Kubernetes 和 Helm Charts:[pojntfx/gon2n](https://pojntfx.github.io/gon2n/) - Windows GUI(附带自定义版本的 n2n)但也适用于常规 n2n:[HappyNet](https://github.com/happynclient/happynwindows) (C) 2007-22 - ntop.org 和贡献者
标签:Edge Node, Linux 网络工具, n2n, NAT 穿透, ntop, -overlay 网络, P2P VPN, Supernode, UDP 协议, VPN, 云安全, 内网穿透, 分布式网络, 加密通信, 客户端加密, 客户端加密, 客户端加密, 数据加密, 点对点网络, 私有网络, 网络互联, 网络信息收集, 网络安全, 虚拟专用网络, 请求拦截, 轻量级 VPN, 远程访问, 防火墙绕过, 隐私保护, 隧道技术, 零信任网络