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協議轉發其他服務的數據。
免責聲明