OpenGNB版本1.5.0的通信协议已升级,不兼容
中文
注意:本文的大多数内容都是由Google翻译的,它是从中文版本的“ OpenGNB用户手册”翻译而来的,本文的内容符合中文版本。
OpenGnB是具有极端Intranet渗透能力的开源P2P分散软件定义的虚拟网络,可让您将公司家庭网络组合到Direct-Access LAN中。
与GNB项目相关的所有代码均以开源发布,当前发布的源代码支持以下平台:FreeBSD Linux OpenWrt RaspBerryPi OpenBSD MacOS
流图LR
子图LANA。
nodea [VPN客户端]
结尾
子图
Nodef [VPN服务器]
结尾
子图lan b
NodeB [VPN客户端]
结尾
nodea < - 有效载荷---> nodef < - 有效载荷---> nodeb
纳特遍历
流图LR
子图LANA。
nodea [gnb nodea]
结尾
子图
索引[GNB公共索引节点]
结尾
子图lan b
nodeb [gnb nodeb]
结尾
节点 - 。 NodeB地址.-索引 - 。节点地址。-nodeb
节点< - 有效载荷 - > nodeb
流图LR
子图LANA。
nodea [gnb nodea]
结尾
子图
NODEC [NODEC]
点点头[点头]
nodee [nodee]
nodef [nodef]
nodej [nodej]
Nodek [Nodek]
nodeg [nodeg]
nodeh [nodeh]
nodei [nodei]
结尾
子图lan b
nodeb [gnb nodea]
结尾
nodea [nodea] ---- nodec [nodec] ----------------------------------------------------------------------------------------------------------------
nodea [nodea] ---- nodeg [nodeg] ---- nodeh [nodeh] ---- nodei [nodei] ---- nodeb [nodeb]
nodea [nodea] ---- nodej [nodej] ---- nodek [nodek] ---- nodeb [nodeb]
流图LR
子图LANA。
nodea [gnb nodea]
结尾
子图lan c
NODEC [GNB NODEC]
结尾
子图lan d
点点头[GNB点头]
结尾
子图LAN E
Nodee [GNB Nodee]
结尾
子图lan b
nodeb [gnb nodeb]
结尾
nodea ---- nodec&noded&nodee -------------------------
流图LR
子图LANA。
nodea [gnb nodea]
upd_over_tcp_a [upd_over_tcp]
结尾
子图
upd_over_tcp_b [upd_over_tcp]
nodeb [gnb nodeb]
结尾
nodea -UDP有效载荷--- upd_over_tcp_a -tcp有效载荷-----------------------------
git clone https://github.com/gnbdev/opengnb.git
cd opengnb
make -f Makefile.linux install
编译后,您可以在opengnb/bin/ Directory中获取gnb gnb_crypto gnb_ctl gnb_es文件。
复制gnb gnb_crypto gnb_ctl gnb_es分别托管A和主机B。
假设主机A和主机B需要在两个不同的LAN中暂时穿透Intranet互连,则最快的方法是通过Lite模式运行GNB。在LITE模式下,不启用非对称加密,并且只能通过密码和节点ID生成加密密钥,因此,安全性将比使用非对称加密的模块化要多得多。
密码是一个32位十六进制的字符串,长度为8个字符,可以表示为0xffffffff或fffffffff ,在公共索引密码下是相同的GNB节点,它被认为是同一虚拟网络上的节点。请选择与其他用户不同的密码。为了方便起见,在这里,选择密码为12345678 ,并且参数** - p **用于指定启动节点的密码。请勿在实际使用中使用如此简单的密码,它可能与其他使用12345678作为密码并导致通信故障的用户相抵触。
用root在主机上执行
gnb -n 1001 -I "120.76.206.113/9001" --multi-socket=on -p 12345678
启动成功后,在主机上执行IP addr以查看GNB节点IP
3: gnb_do:mtu 1280 qdisc fq_codel state UNKNOWN group default qlen 500
link/none
inet 10.1.0.1/16 scope global gnb_tun
valid_lft forever preferred_lft forever
inet6 64:ff9b::a01:1/96 scope global
valid_lft forever preferred_lft forever
inet6 fe80::402:c027:2cf:41f9/64 scope link stable-privacy
valid_lft forever preferred_lft forever
用root在主机上执行
gnb -n 1002 -I "120.76.206.113/9001" --multi-socket=on -p 12345678
启动成功后,在主机B上执行IP addr以查看GNB节点IP
3: gnb_do:mtu 1280 qdisc fq_codel state UNKNOWN group default qlen 500
link/none
inet 10.1.0.2/16 scope global gnb_tun
valid_lft forever preferred_lft forever
inet6 64:ff9b::a01:2/96 scope global
valid_lft forever preferred_lft forever
inet6 fe80::a6cf:9f:e778:cf5d/64 scope link stable-privacy
valid_lft forever preferred_lft forever
在这一点上,如果主机A和主机B NAT成功渗透,并确保主机上没有防火墙干预,则可以互相ping彼此的虚拟IP。
在主机上执行
root @ hostA: ~ # ping 10.1.0.2
PING 10.1.0.2 (10.1.0.2) 56(84) bytes of data.
64 bytes from 10.1.0.2: icmp_seq=1 ttl=64 time=2.13 ms
64 bytes from 10.1.0.2: icmp_seq=2 ttl=64 time=2.18 ms
64 bytes from 10.1.0.2: icmp_seq=3 ttl=64 time=2.38 ms
64 bytes from 10.1.0.2: icmp_seq=4 ttl=64 time=2.31 ms
64 bytes from 10.1.0.2: icmp_seq=5 ttl=64 time=2.33 ms
在主机B上执行
root @ hostA: ~ # ping 10.1.0.1
PING 10.1.0.1 (10.1.0.1) 56(84) bytes of data.
64 bytes from 10.1.0.1: icmp_seq=1 ttl=64 time=2.34 ms
64 bytes from 10.1.0.1: icmp_seq=2 ttl=64 time=1.88 ms
64 bytes from 10.1.0.1: icmp_seq=3 ttl=64 time=1.92 ms
64 bytes from 10.1.0.1: icmp_seq=4 ttl=64 time=2.61 ms
64 bytes from 10.1.0.1: icmp_seq=5 ttl=64 time=2.39 ms
GNB Lite模式是上述GNB Lite模式的最简单使用过程,如果您需要更多主机来参与网络并使用更安全的不对称加密方法来保护GNB的数据通信,请仔细阅读以下文档。
GNB的索引节点的作用与BT协议中的跟踪器相似,BT协议中一些GNB网络志愿者提供了。在大多数情况下, index节点仅提供GNB网络中主机的地址索引,并且不会传输GNB节点的数据。
某些志愿者提供的GNB的forward节点可以为在极端情况下无法暂时执行点对点通信的主机执行数据传输,而GNB主机之间的不对称数据加密使得forward节点不可能监视传输的数据。
在无法建立点对点通信的极端情况下,是否要通过公共网络forward节点传输数据以及用于传输数据的信任远期节点完全取决于主机所有者在GNB节点上的设置。实际上,即使在非常复杂的网络环境中,GNB的出色链接功能也可以随时随地建立虚拟数据链接。 GNB甚至将为网络中的主机创建多个虚拟链接,并选择发送数据包的最佳速度路径。
这是志愿者提供的可用index节点
i|0|101.32.178.3|9001
host to net和net to net模式中,GNB可以转发特定子网的数据,但不支持完全的流量转发;GNB支持OpenWRT平台,需要由用户编译。
SystemD脚本是Jin Buguo为GNB项目制作的
Atzlinux项目已在Linux下为GNB项目制作了DEB格式软件包,并将其贡献为官方的Debian软件包。
您可以在Debian 12(Bookworm)上安装OpenGNB:
apt install opengnbArch Linux的AUR包装是由Taotieren为GNB项目制作的。安装方法如下
# install distribution
yay -Sy opengnb
# Install the development version
yay -Sy opengnb-git有关详细信息,请访问https://aur.archlinux.org/packages/opengnb/
https://aur.archlinux.org/packages/opengnb-git/
在每个平台上下载并发布的GNB的编译和发布版本
GNB_UDP_OVER_TCP是为GNB开发的服务,该服务通过TCP链接转发UDP数据包,并且还可以基于UDP协议转发其他服务的数据。
免责声明