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]相关推荐
QEMU 开源模拟器

QEMU 开源模拟器

QEMU是一套由Fabrice Bellard所编写的模拟处理器的自由软件。它与Bochs,PearPC近似,但其具有某些后两……...

Tiled 2D 游戏地图编辑器

Tiled 2D 游戏地图编辑器

Tiled 是一款 2D 关卡编辑器,风格类似 mini 版的 photoshop,简单易用,基于 Apache/BSD/GPL 等多重许可……...

SOGo 群组协同工作软件

SOGo 群组协同工作软件

SOGo 是一个群组工作系统软件,主要侧重于可扩展性和开放性标准。 SOGo 提供基于 Ajax 方式的Web界面,通……...

今日开源
  1. casbin 轻量级访问控制框架

    casbin是一个用Go语言打造的轻量级开源访问控制框架,采用了元模型的设计思想,支持多种经典的访问控制方案,如基于角色的访问控制 RBAC、基于属性的访问控制 ABAC 等。 casbin 的主要特性包括: 支持自定义请求的……

    开源软件 2024-06-24

  2. xs C 多线程网络库

    基于C多线程网络库,欢迎大家使用,例子在代码example目录下,以后我会再增加一些例子。 文档暂时没有,有问题请邮件我:-) 获取代码:https://github.com/xueguoliang/xs xs致力于1)多线程网络库,如果你的程序要……

    开源软件 2024-06-24

  3. Sikuli 图形脚本语言

    Sikuli 图形脚本语言

    MIT设计了一种新颖的图形脚本语言Sikuli,计算机用户 只须有最基本的编程技能(比如会写print"hello world"),他不需要去写出一行行代码,而是用屏幕截图的方式,用截出来的图形元素组合出神奇的程序。……

    开源软件 2024-06-24

返回顶部小火箭