GNB 去中心化 P2P 内网穿透 VPN

开源网站开源项目 24-05-22 17:10:30

GNB是一个开源的去中心化的具有极致内网穿透能力的通过P2P进行三层网络交换的虚拟组网系统.

gnb_udp_over_tcp是一个为GNB开发的通过tcp链路中转UDP分组转发的服务,也可以为其他基于UDP协议的服务中转数据。

出于安全考虑,GNB项目相关代码会开源。

内网穿透 去中心化 P2P虚拟组网

GNB独有的去中心化组网技术可以将分布在世界不同地方的计算机组成一个虚拟局域网,即使这些计算机深藏于没有公网ip的局域网里,不需要公网服务器中转就可以实现TCP/IP通讯。

极致的链路能力

GNB有四套机制确保在主机所在网络发生变化时能够快速恢复数据链路并且在某些场景下还能保持应用层的网络连接,以下是一个经过反复测试的例子: 1、在肯德基打开苹果笔记电脑本接入肯德基的免费Wi-Fi; 2、在苹果笔记电脑启动GNB的边缘节点,此时可以通过 ssh 客户端登录到家中的同样是接入GNB网络的一台Linux; 3、合上笔记本电脑并带着走出肯德基。 4、来到麦当劳,打开笔记本,接入麦当劳的免费Wi-Fi,稍等半分钟网络恢复; 5、此时苹果笔记本中的 ssh 客户端与家中Linux的ssh的tcp连接没有断开,依然是通的。

以上例子仅是说明应用层无法感知GNB网络的虚拟链路的变化以及GNB在网络发生变化时快速恢复链路的能力。事实上,对于一些有心跳机制的tcp通信协议如果在一定时间内没有收到心跳包,应用层就会自动断开连接。

数据安全

GNB节点间基于椭圆曲线数字签名实现可靠的身份验证

GNB节点之间的通信密钥由 ED25519共享密钥+同步时钟(可选)+sha512构成

在同步时钟的作用下,节点的加密密钥可以每分钟或每小时同步更新一次,但这要求各节点时钟的必须要同步,在无法确保主机时钟同步的情况下可以选择关闭这个特性。

多平台支持

GNB用C语言开发,编译时不需要引用第三方库文件,可以方便移植到当前流行的操作系统上。

GNB目前支持的操作系统及平台有 Linux_x86_64,Windows10_x86_64, macOS,FreeBSD_AMD64,OpenBSD_AMD64,树莓派,OpenWRT;大至服务器环境,桌面系统,小至仅有32M内存的OpenWRT路由器都能很好的运行GNB网络。

[GNB 去中心化 P2P 内网穿透 VPN]相关推荐

OpenAI 人工智能工具包

OpenAI 是一个人工智能的工具包,包括神经网络、遗传算法和有限状态机等。 OpenAI is dedicated to creat……...

Reader iOS PDF 阅读器

Reader iOS PDF 阅读器

Reader 能够让 iOS 开发者轻而易举地在 iOS 设备屏幕上显示 PDF 文件。代码通用,不需要任何 XIB (因为……...

GX 软件包管理工具

GX 软件包管理工具

GX是一个解决文件系统IPFS的软件包管理工具。它具有灵活,功能强大,简单的特点。 安装: $goget-ugithu……...

HDFS 分布式文件系统

HDFS 分布式文件系统

Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。HDFS有着高容错性(fault-tolerent……...

今日开源
  1. Scut 开源游戏服务器引擎

    Scut游戏服务器引擎使用C#语言开发,特别适用于手机网络游戏,支持使用Python脚本进行游戏开发;支持MSSQL/Mysql数据库;支持HTTP/Socket协议同时接入;采用实体类对象建模,自动构造数据库表结构生成和修改语句;……

    开源软件 2024-06-16

  2. Java 编程语言

    Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称,最初推出的时候提出 “Write Once, Run Anywhere” 的理想愿景。 Java是一门面向对象编程语言,不仅吸收了C/C++语言的各种优点,……

    开源软件 2024-06-16

  3. Prototype Ajax 框架

    Prototype Ajax 框架

    Prototype.js 是一个由Sam Stephenson写的JavaScript包。这个构思奇妙编写良好的一段兼容标准的一段代码将承担创造胖客户端, 高交互性WEB应用程序的重担。轻松加入Web 2.0特性。 代码示例: Prototype 1.6.0 PDF……

    开源软件 2024-06-16

返回顶部小火箭