You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+80-70Lines changed: 80 additions & 70 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,30 +1,28 @@
1
1
# OpenGNB
2
2
3
-
version 1.3.0.0 protocol version 1.2.0
3
+
[English](/README.md)[Chinese](/README_CN.md)
4
4
5
-
[Chinese](/README.md)[English](/README_EN.md)
5
+
*Note: Most of the content of this article is translated by Google translate from the Chinese version of the "OpenGNB User Manual", the content of this article is subject to the Chinese version.*
6
6
7
-
[OpenGNB](https://github.com/gnbdev/opengnb"OpenGNB")是一个开源的 P2P 去中心化的具有极致的内网穿透能力的软件自定义虚拟网络(Software Defined Virtual Network),可以让你把公司-家庭网络组成直接访问的局域网。
7
+
[OpenGNB](https://github.com/gnbdev/opengnb"OpenGNB")is an open source P2P decentralized Software Defined Virtual Network with extreme intranet penetration capability,Allows you to combine your company-home network into a direct-access LAN.
8
8
9
-
## GNB 特点
9
+
All code related to the GNB project is released as open source, and the currently released source code supports the following platforms: FreeBSD Linux OpenWRT Raspberrypi OpenBSD macOS
- Reliable authentication between GNB nodes based on elliptic curve digital signature
20
+
4. Multi-platform support
21
+
- GNB is developed in C language. It does not need to refer to third-party library files when compiling. It can be easily ported to the current popular operating systems. Currently supported operating systems and platforms include Linux_x86_64, Windows10_x86_64, macOS, FreeBSD_AMD64, OpenBSD_AMD64, Raspberry Pi, OpenWRT; as big as server environment, desktop system, as small as OpenWRT router with only 32M memory can run GNB network very well.
After compiling, you can get `gnb``gnb_crypto``gnb_ctl``gnb_es` files in the `opengnb/bin/` directory.
170
+
171
+
### Step 2: Quickly deploy GNB nodes
169
172
170
-
### 步骤2: 快捷部署 GNB 节点
171
-
把`gnb``gnb_crypto``gnb_ctl``gnb_es` 分别拷贝到主机 A 和主机 B 上。
173
+
Copy `gnb``gnb_crypto``gnb_ctl``gnb_es` to host A and host B respectively.
172
174
173
-
假设主机 A 和主机 B 分别在两个不同的局域网里需要临时穿透内网互联,最快捷的途径通过 lite 模式运行 gnb,在 lite 模式下没有启用非对称加密,仅通过 **passcode**和节点 id 生成加密密钥,因此安全性会比使用非对称加密的工作模块式低很多。
175
+
Assuming that host A and host B need to temporarily penetrate the intranet interconnection in two different LANs, the fastest way is to run gnb through lite mode. In lite mode, asymmetric encryption is not enabled, and only through **passcode**and The node id generates the encryption key, so the security will be much less modular than working with asymmetric encryption.
174
176
175
-
**passcode**是一个长度为8个字符的32bit的16进制字符串,可以表示为 **0xFFFFFFFF**或**FFFFFFFF**, 在一个 public index 下 **passcode**相同的 GNB 节点被认为是同一个虚拟网络上的节点,请尽可能选择一个不会跟其他用户相同的 **passcode**,这里为了方便演示选定 **passcode**为 `12345678`, 参数 **-p**用于指定启动节点的 **passcode**。在实际使用过程中请勿使用这样简单 **passcode**,这可能会与其他同样使用`12345678`作为的 **passcode**的用户冲突导致通信失败。
177
+
**passcode**is a 32-bit hexadecimal string with a length of 8 characters, which can be represented as **0xFFFFFFFF**or**FFFFFFFF**, under a public index **passcode**is the same GNB node It is considered to be a node on the same virtual network. Please choose a **passcode** that will not be the same as other users as much as possible. Here, for the convenience of demonstration, the **passcode**is selected as `12345678`, and the parameter **-p**Used to specify the **passcode** to start the node. Do not use such a simple **passcode** in actual use, it may conflict with other users who also use `12345678` as **passcode**and cause communication failure.
此时,如果主机 A 和主机 B nat 穿透成功并确保主机上没有防火墙的干预的情况下,可以互相 ping 到对方的虚拟 ip。
220
+
### Step 5: Test GNB Node Interoperability
218
221
219
-
主机 A 上执行
222
+
At this point, if host A and host B nat penetrate successfully and ensure that there is no firewall intervention on the host, they can ping each other's virtual ip.
223
+
224
+
Execute on host A
220
225
221
226
```
222
-
root@hostA:~# ping 10.1.0.2
227
+
root @ hostA: ~ # ping 10.1.0.2
223
228
PING 10.1.0.2 (10.1.0.2) 56(84) bytes of data.
224
229
64 bytes from 10.1.0.2: icmp_seq=1 ttl=64 time=2.13 ms
225
230
64 bytes from 10.1.0.2: icmp_seq=2 ttl=64 time=2.18 ms
64 bytes from 10.1.0.1: icmp_seq=5 ttl=64 time=2.39 ms
241
246
```
242
247
243
-
以上是 GNB lite 模式的最简使用过程,GNB lite 模式内置5个节点,如果需要更多主机参与组网和使用更安全的非对称加密方式保护 GNB 的数据通信,请仔细阅读下面的文档。
248
+
The simplest use process of the above GNB lite mode, GNB lite mode has 5 built-in nodes, if you need more hosts to participate in the networking and use a more secure asymmetric encryption method to protect the data communication of GNB, please read the following documents carefully.
The role of the index node of GNB is similar to the Tracker in the BT protocol, which is provided by some GNB network volunteers. In most cases, the `index` node only provides the address index for the hosts in the GNB network, and will not transfer data for the GNB node.
The `forward` node of GNB provided by some volunteers can perform data transfer for hosts that are temporarily unable to perform point-to-point communication in extreme cases, and the asymmetric data encryption between GNB hosts makes it impossible for the `forward` node to spy on the transferred data.
254
258
259
+
In extreme cases where peer-to-peer communication cannot be established, whether to transfer data through the public network `forward` node and which trusted forward node to use to transfer data depends entirely on the host owner's settings on the GNB node. In fact, even in an extremely complex network environment, GNB's superior link capability can establish virtual data links anytime, anywhere. GNB will even create multiple virtual links for hosts in the network, and choose the optimal speed path to send data packets.
255
260
256
-
这是由志愿者提供的可用`index`节点
261
+
Here are the available `index` nodes provided by volunteers
2. GNB 不转发默认路由(Default route)的 IP 帧,在`host to net`和`net to net` 模式下 GNB 可以为特定的子网的数据做转发,但不支持全流量转发;
269
-
3. 在 Windows 平台下 GNB 的 IPV6 目前无法正常工作;
270
-
4. GNB 的使用虚拟网卡的工作在 TUN 模式下实现三层交换,不支持 TAP 模式即不支持二层交换;
272
+
## Limitations of GNB
273
+
274
+
1. GNB does not support *Classless Inter-Domain Routing (CIDR)*, only supports Class A, B, C networks;
275
+
2. GNB does not forward IP frames of Default route. In `host to net` and `net to net` modes, GNB can forward data for specific subnets, but does not support full traffic forwarding;
276
+
3. The IPV6 of GNB cannot work normally under Windows platform;
277
+
4. The work of GNB using virtual network card realizes Layer 3 switching in TUN mode, and does not support Layer 2 switching if it does not support TAP mode;
271
278
272
279
273
-
### GNB 相关文档
274
280
275
-
*[GNB 用户手册](docs/gnb_user_manual_cn.md)
276
-
*[GNB 的调试诊断](docs/gnb_diagnose_cn.md)
281
+
### GNB related documentation
277
282
283
+
*[GNB User Manual](docs/gnb_user_manual_en.md)
284
+
*[Debug diagnostics for GNB](docs/gnb_diagnose_cn.md)
278
285
279
-
## GNB在OpenWRT上
280
286
281
-
GNB 支持 OpenWRT 平台,需要用户自行编译。
282
287
288
+
## GNB on OpenWRT
283
289
284
-
## GNB 在 Linux 发行版上
290
+
GNB supports the OpenWRT platform and needs to be compiled by the user.
[铜豌豆 Linux](https://www.atzlinux.com)项目为 GNB 项目制做了 Linux 下的 deb 格式软件包,将其贡献成为 Debian 官方软件包.
293
+
## GNB on Linux distributions
289
294
290
-
可以在 Debian 12 (bookworm) 下直接安装:
295
+
The systemd script was made by [Jin Buguo](https://github.com/jinbuguo) for the GNB project
296
+
297
+
The [atzlinux](https://www.atzlinux.com) project has made a deb format software package under Linux for the GNB project, and contributed it to become the official Debian software package.
298
+
299
+
You may install opengnb on Debian 12 (bookworm) :
291
300
292
301
```bash
293
302
apt install opengnb
294
303
```
295
304
296
-
- Arch Linux
297
305
298
-
[taotieren](https://github.com/taotieren) 为 GNB 项目制作了 Arch Linux 的 AUR 包
[gnb_udp_over_tcp](https://github.com/gnbdev/gnb_udp_over_tcp"gnb_udp_over_tcp")is a service developed for GNB that forwards UDP packets through tcp link, and can also forward data for other services based on UDP protocol.
0 commit comments