โปรโตคอลการสื่อสารของ OpenGNB เวอร์ชัน 1.5.0 ได้รับการอัพเกรดและไม่สามารถใช้งานได้
ภาษาอังกฤษจีน
หมายเหตุ: เนื้อหาส่วนใหญ่ของบทความนี้ได้รับการแปลโดย Google Translate จาก "คู่มือผู้ใช้ OpenGNB เวอร์ชันภาษาจีนเนื้อหาของบทความนี้อยู่ภายใต้เวอร์ชันภาษาจีน
OpenGNB เป็นซอฟต์แวร์ที่มีการกระจายอำนาจแบบเปิดกว้างของซอฟต์แวร์เสมือนจริง P2P ที่มีความสามารถในการเจาะอินทราเน็ตสุดขั้วช่วยให้คุณสามารถรวมเครือข่าย บริษัท บ้านของคุณเข้ากับ LAN โดยตรง
รหัสทั้งหมดที่เกี่ยวข้องกับโครงการ GNB ได้รับการเผยแพร่เป็นโอเพ่นซอร์สและซอร์สโค้ดที่เปิดตัวในปัจจุบันรองรับแพลตฟอร์มต่อไปนี้: FreeBSD Linux OpenWrt Raspberrypi OpenBSD MacOS
ผังงาน LR
กราฟกราฟ
Nodea [VPN clienta]
จบ
กราฟกราฟ
Nodef [VPN Server]
จบ
กราฟกราฟ LAN B
Nodeb [VPN ClientB]
จบ
nodea <-payload ---> nodef <-payload ---> nodeB
Nat Traversal Point to Point
ผังงาน LR
กราฟกราฟ
Nodea [GNB Nodea]
จบ
กราฟกราฟ
ดัชนี [โหนดดัชนีสาธารณะ GNB]
จบ
กราฟกราฟ LAN B
nodeb [gnb nodeb]
จบ
Nodea -. ที่อยู่ Nodeb .- ดัชนี - ที่อยู่ nodea- nodeb
nodea <-payload-> nodeB
ผังงาน LR
กราฟกราฟ
Nodea [GNB Nodea]
จบ
กราฟกราฟ
nodec [nodec]
Noded [Noded]
nodee [nodee]
nodef [nodef]
nodej [nodej]
Nodek [Nodek]
Nodeg [Nodeg]
Nodeh [Nodeh]
nodei [nodei]
จบ
กราฟกราฟ LAN B
Nodeb [GNB Nodea]
จบ
nodea [nodea] ---- nodec [nodec] ---- noded [noded] ---- nodee [nodee] ---- nodef [nodef] ---- nodeb [nodeb]
nodea [nodea] ---- nodeg [nodeg] ---- nodeh [nodeh] ---- nodei [nodei] ---- nodeb [nodeb]
nodea [nodea] ---- nodej [nodej] ---- nodek [nodek] ---- nodeb [nodeb]
ผังงาน LR
กราฟกราฟ
Nodea [GNB Nodea]
จบ
กราฟกราฟ LAN C
Nodec [GNB NODEC]
จบ
กราฟกราฟ
Noded [GNB NODED]
จบ
กราฟกราฟ Lan E
Nodee [GNB Nodee]
จบ
กราฟกราฟ LAN B
nodeb [gnb nodeb]
จบ
nodea ---- nodec & noded & nodee ---- nodeb
ผังงาน LR
กราฟกราฟ
Nodea [GNB Nodea]
upd_over_tcp_a [upd_over_tcp]
จบ
กราฟกราฟ
upd_over_tcp_b [upd_over_tcp]
nodeb [gnb nodeb]
จบ
Nodea-UDP Payload --- upd_over_tcp_a-tcp payload --- upd_over_tcp_b-payload udp --- nodeb
git clone https://github.com/gnbdev/opengnb.git
cd opengnb
make -f Makefile.linux install
หลังจากรวบรวมคุณสามารถรับไฟล์ gnb gnb_crypto gnb_ctl gnb_es ในไฟล์ opengnb/bin/ DIRECTORY
คัดลอก gnb gnb_crypto gnb_ctl gnb_es เพื่อโฮสต์ A และโฮสต์ B ตามลำดับ
สมมติว่าโฮสต์ A และโฮสต์ B จำเป็นต้องเจาะการเชื่อมต่อระหว่างอินทราเน็ตใน LAN สองตัวซึ่งเป็นวิธีที่เร็วที่สุดคือการเรียกใช้ GNB ผ่านโหมด Lite ในโหมด Lite การเข้ารหัสแบบอสมมาตรไม่ได้เปิดใช้งานและผ่าน รหัสผ่าน และโหนด ID สร้างคีย์การเข้ารหัสดังนั้นความปลอดภัยจะมีโมดูลน้อยกว่าการทำงานกับการเข้ารหัสแบบไม่สมมาตร
Passcode เป็นสตริง hexadecimal 32 บิตที่มีความยาว 8 อักขระซึ่งสามารถแสดงเป็น 0xffffffff หรือ ffffffff ภายใต้ดัชนี Passcode เป็นโหนด GNB เดียวกับที่ถือว่าเป็นโหนดบนเครือข่ายเสมือนเดียวกัน โปรดเลือก รหัสผ่าน ที่จะไม่เหมือนกับผู้ใช้รายอื่นมากที่สุด ที่นี่เพื่อความสะดวกในการสาธิต รหัสผ่าน จะถูกเลือกเป็น 12345678 และพารามิเตอร์ **-p ** ใช้เพื่อระบุ รหัสผ่าน เพื่อเริ่มโหนด อย่าใช้ รหัสผ่าน แบบง่าย ๆ ในการใช้งานจริงอาจขัดแย้งกับผู้ใช้รายอื่นที่ใช้ 12345678 เป็น รหัสผ่าน และทำให้เกิดความล้มเหลวในการสื่อสาร
ดำเนินการด้วย รูท บนโฮสต์ก
gnb -n 1001 -I "120.76.206.113/9001" --multi-socket=on -p 12345678
หลังจากการเริ่มต้นสำเร็จแล้วให้ดำเนินการ IP addr บนโฮสต์ A เพื่อดูโหนด 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
ดำเนินการด้วย รูท บนโฮสต์ B
gnb -n 1002 -I "120.76.206.113/9001" --multi-socket=on -p 12345678
หลังจากการเริ่มต้นสำเร็จแล้วให้ดำเนินการ IP addr บนโฮสต์ B เพื่อดูโหนด 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 มีโหนดในตัว 5 โหนดหากคุณต้องการโฮสต์เพิ่มเติมเพื่อเข้าร่วมในเครือข่ายและใช้วิธีการเข้ารหัสแบบอสมมาตรที่ปลอดภัยยิ่งขึ้นเพื่อป้องกันการสื่อสารข้อมูลของ GNB โปรดอ่านเอกสารต่อไปนี้อย่างระมัดระวัง
บทบาทของโหนดดัชนีของ GNB นั้นคล้ายคลึงกับตัวติดตามในโปรโตคอล BT ซึ่งจัดทำโดยอาสาสมัครเครือข่าย GNB บางคน ในกรณีส่วนใหญ่โหนด index จะจัดทำดัชนีที่อยู่สำหรับโฮสต์ในเครือข่าย GNB เท่านั้นและจะไม่ถ่ายโอนข้อมูลสำหรับโหนด GNB
โหนด forward ของ GNB ที่จัดทำโดยอาสาสมัครบางคนสามารถทำการถ่ายโอนข้อมูลสำหรับโฮสต์ที่ไม่สามารถทำการสื่อสารแบบจุดต่อจุดชั่วคราวในกรณีที่รุนแรงและการเข้ารหัสข้อมูลแบบไม่สมมาตรระหว่างโฮสต์ GNB ทำให้โหนดไป forward สอดแนมข้อมูลที่ถ่ายโอน
ในกรณีที่รุนแรงที่ไม่สามารถสร้างการสื่อสารแบบเพียร์ทูเพียร์ไม่ว่าจะถ่ายโอนข้อมูลผ่านโหนดเครือข่ายสาธารณะ forward ในความเป็นจริงแม้ในสภาพแวดล้อมเครือข่ายที่ซับซ้อนมากความสามารถในการเชื่อมโยงที่เหนือกว่าของ GNB สามารถสร้างลิงก์ข้อมูลเสมือนจริงได้ทุกที่ทุกเวลา GNB จะสร้างลิงก์เสมือนหลายรายการสำหรับโฮสต์ในเครือข่ายและเลือกเส้นทางความเร็วที่ดีที่สุดในการส่งแพ็คเก็ตข้อมูล
นี่คือโหนด index ที่มีให้โดยอาสาสมัคร
i|0|101.32.178.3|9001
host to net และ net to net GNB สามารถส่งต่อข้อมูลสำหรับย่อยเฉพาะ แต่ไม่รองรับการส่งต่อการรับส่งข้อมูลเต็มรูปแบบGNB รองรับแพลตฟอร์ม OpenWRT และจำเป็นต้องรวบรวมโดยผู้ใช้
สคริปต์ Systemd ทำโดย Jin Buguo สำหรับโครงการ GNB
โครงการ Atzlinux ได้สร้างแพ็คเกจซอฟต์แวร์รูปแบบ DEB ภายใต้ Linux สำหรับโครงการ GNB และสนับสนุนให้กลายเป็นแพ็คเกจซอฟต์แวร์ Debian อย่างเป็นทางการ
คุณสามารถติดตั้ง OpenGNB บน Debian 12 (Bookworm):
apt install opengnbแพ็คเกจ AUR ของ Arch Linux ทำโดย 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 ที่ส่งต่อแพ็คเก็ต UDP ผ่านลิงก์ TCP และยังสามารถส่งต่อข้อมูลสำหรับบริการอื่น ๆ ตามโปรโตคอล UDP
คำเตือน