Browse Source

Add Simplified Chinese Readme File. (#409)

r00t 1 year ago
parent
commit
4240c47244
6 changed files with 353 additions and 4 deletions
  1. 1 0
      .gitignore
  2. 1 1
      README-DE.md
  3. 1 1
      README-NL.md
  4. 1 1
      README-TW.md
  5. 348 0
      README-ZH.md
  6. 1 1
      README.md

+ 1 - 0
.gitignore

@@ -9,3 +9,4 @@ debian/debhelper-build-stamp
9 9
 src/version.rs
10 10
 db_v2.sqlite3
11 11
 test.*
12
+.idea

+ 1 - 1
README-DE.md

@@ -5,7 +5,7 @@
5 5
   <a href="#ein-schlüsselpaar-erstellen">Schlüsselpaar</a> •
6 6
   <a href="#debian-pakete">Debian-Pakete</a> •
7 7
   <a href="#umgebungsvariablen">Umgebungsvariablen</a><br>
8
-  [<a href="README.md">English</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-TW.md">繁體中文</a>]<br>
8
+  [<a href="README.md">English</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-TW.md">繁體中文</a>] | [<a href="README-ZH.md">简体中文</a>]<br>
9 9
 </p>
10 10
 
11 11
 # RustDesk Server-Programm

+ 1 - 1
README-NL.md

@@ -5,7 +5,7 @@
5 5
   <a href="#hoe-maak-je-een-key-paar">Key paar</a> •
6 6
   <a href="#deb-pakketten">Debian pakketten</a> •
7 7
   <a href="#env-variabelen">ENV variabelen</a><br>
8
-  [<a href="README.md">English</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-TW.md">繁體中文</a>]<br>
8
+  [<a href="README.md">English</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-TW.md">繁體中文</a>] | [<a href="README-ZH.md">简体中文</a>]<br>
9 9
 </p>
10 10
 
11 11
 # RustDesk Server Programa

+ 1 - 1
README-TW.md

@@ -5,7 +5,7 @@
5 5
   <a href="#如何建立金鑰對">金鑰對</a> •
6 6
   <a href="#deb-套件">Debian</a> •
7 7
   <a href="#ENV-環境參數">環境參數</a><br>
8
-  [<a href="README.md">English</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-NL.md">Nederlands</a>]<br>
8
+  [<a href="README.md">English</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-ZH.md">简体中文</a>]<br>
9 9
 </p>
10 10
 
11 11
 # RustDesk Server Program

+ 348 - 0
README-ZH.md

@@ -0,0 +1,348 @@
1
+<p align="center">
2
+  <a href="#如何自行构建">自行构建</a> •
3
+  <a href="#Docker-镜像">Docker</a> •
4
+  <a href="#基于-S6-overlay-的镜像">S6-overlay</a> •
5
+  <a href="#如何创建密钥">密钥</a> •
6
+  <a href="#deb-套件">Debian</a> •
7
+  <a href="#ENV-环境参数">环境参数</a><br>
8
+  [<a href="README.md">English</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-TW.md">繁体中文</a>]<br>
9
+</p>
10
+
11
+# RustDesk Server Program
12
+
13
+[![build](https://github.com/rustdesk/rustdesk-server/actions/workflows/build.yaml/badge.svg)](https://github.com/rustdesk/rustdesk-server/actions/workflows/build.yaml)
14
+
15
+[**下载**](https://github.com/rustdesk/rustdesk-server/releases)
16
+
17
+[**说明文件**](https://rustdesk.com/docs/zh-cn/self-host/)
18
+
19
+[**FAQ**](https://github.com/rustdesk/rustdesk/wiki/FAQ)
20
+
21
+自行搭建属于你的RustDesk服务器,所有的一切都是免费且开源的
22
+
23
+## 如何自行构建
24
+
25
+```bash
26
+cargo build --release
27
+```
28
+
29
+执行后会在target/release目录下生成三个对应平台的可执行程序
30
+
31
+- hbbs - RustDesk ID/会和服务器
32
+- hbbr - RustDesk 中继服务器
33
+- rustdesk-utils - RustDesk 命令行工具
34
+
35
+您可以在 [releases](https://github.com/rustdesk/rustdesk-server/releases) 页面中找到最新的服务端软件。
36
+
37
+如果您需要额外的功能支持,[RustDesk 专业版服务器](https://rustdesk.com/pricing.html) 获取更适合您。
38
+
39
+如果您想开发自己的服务器,[rustdesk-server-demo](https://github.com/rustdesk/rustdesk-server-demo) 应该会比直接使用这个仓库更简单快捷。
40
+
41
+## Docker 镜像
42
+
43
+Docker镜像会在每次 GitHub 发布新的release版本时自动构建。我们提供两种类型的镜像。
44
+
45
+### Classic 传统镜像
46
+
47
+这个类型的镜像是基于 `ubuntu-20.04` 进行构建,镜像仅包含两个主要的可执行程序(`hbbr` 和 `hbbs`)。它们可以通过以下tag在 [Docker Hub](https://hub.docker.com/r/rustdesk/rustdesk-server/) 上获得:
48
+
49
+| 架构      | image:tag                                 |
50
+|---------| ----------------------------------------- |
51
+| amd64   | `rustdesk/rustdesk-server:latest`         |
52
+| arm64v8 | `rustdesk/rustdesk-server:latest-arm64v8` |
53
+
54
+您可以使用以下命令,直接通过 ``docker run`` 來启动这些镜像:
55
+
56
+```bash
57
+docker run --name hbbs --net=host -v "$PWD/data:/root" -d rustdesk/rustdesk-server:latest hbbs -r <relay-server-ip[:port]> 
58
+docker run --name hbbr --net=host -v "$PWD/data:/root" -d rustdesk/rustdesk-server:latest hbbr 
59
+```
60
+
61
+或不使用 `--net=host` 参数启动, 但这样 P2P 直连功能将无法工作。
62
+
63
+对于使用了 SELinux 的系统,您需要将 ``/root`` 替换为 ``/root:z``,以保证容器的正常运行。或者,也可以通过添加参数 ``--security-opt label=disable`` 来完全禁用 SELinux 容器隔离。
64
+
65
+```bash
66
+docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v "$PWD/data:/root" -d rustdesk/rustdesk-server:latest hbbs -r <relay-server-ip[:port]> 
67
+docker run --name hbbr -p 21117:21117 -p 21119:21119 -v "$PWD/data:/root" -d rustdesk/rustdesk-server:latest hbbr 
68
+```
69
+
70
+`relay-server-ip` 参数是运行这些容器的服务器的 IP 地址(或 DNS 名称)。如果你不想使用 **21117** 作为 `hbbr` 的服务端口,可使用可选参数 `port` 进行指定。
71
+
72
+您也可以使用 docker-compose 进行构建,以下为配置示例:
73
+
74
+```yaml
75
+version: '3'
76
+
77
+networks:
78
+  rustdesk-net:
79
+    external: false
80
+
81
+services:
82
+  hbbs:
83
+    container_name: hbbs
84
+    ports:
85
+      - 21115:21115
86
+      - 21116:21116
87
+      - 21116:21116/udp
88
+      - 21118:21118
89
+    image: rustdesk/rustdesk-server:latest
90
+    command: hbbs -r rustdesk.example.com:21117
91
+    volumes:
92
+      - ./data:/root
93
+    networks:
94
+      - rustdesk-net
95
+    depends_on:
96
+      - hbbr
97
+    restart: unless-stopped
98
+
99
+  hbbr:
100
+    container_name: hbbr
101
+    ports:
102
+      - 21117:21117
103
+      - 21119:21119
104
+    image: rustdesk/rustdesk-server:latest
105
+    command: hbbr
106
+    volumes:
107
+      - ./data:/root
108
+    networks:
109
+      - rustdesk-net
110
+    restart: unless-stopped
111
+```
112
+
113
+编辑第16行来指定你的中继服务器 (默认端口监听在 21117 的那一个)。 如果需要的话,您也可以编辑 volume 信息  (第 18 和 33 行)。
114
+
115
+(感谢 @lukebarone 和 @QuiGonLeong 协助提供的 docker-compose 配置示例)
116
+
117
+## 基于 S6-overlay 的镜像
118
+
119
+> 这些镜像是针对 `busybox:stable` 构建的,并添加了可执行程序(hbbr 和 hbbs)以及 [S6-overlay](https://github.com/just-containers/s6-overlay)。 它们可以使用以下tag在 [Docker hub](https://hub.docker.com/r/rustdesk/rustdesk-server-s6/) 上获取:
120
+
121
+
122
+| 架構      | version | image:tag                                    |
123
+| --------- | ------- | -------------------------------------------- |
124
+| multiarch | latest  | `rustdesk/rustdesk-server-s6:latest`         |
125
+| amd64     | latest  | `rustdesk/rustdesk-server-s6:latest-amd64`   |
126
+| i386      | latest  | `rustdesk/rustdesk-server-s6:latest-i386`    |
127
+| arm64v8   | latest  | `rustdesk/rustdesk-server-s6:latest-arm64v8` |
128
+| armv7     | latest  | `rustdesk/rustdesk-server-s6:latest-armv7`   |
129
+| multiarch | 2       | `rustdesk/rustdesk-server-s6:2`              |
130
+| amd64     | 2       | `rustdesk/rustdesk-server-s6:2-amd64`        |
131
+| i386      | 2       | `rustdesk/rustdesk-server-s6:2-i386`         |
132
+| arm64v8   | 2       | `rustdesk/rustdesk-server-s6:2-arm64v8`      |
133
+| armv7     | 2       | `rustdesk/rustdesk-server-s6:2-armv7`        |
134
+| multiarch | 2.0.0   | `rustdesk/rustdesk-server-s6:2.0.0`          |
135
+| amd64     | 2.0.0   | `rustdesk/rustdesk-server-s6:2.0.0-amd64`    |
136
+| i386      | 2.0.0   | `rustdesk/rustdesk-server-s6:2.0.0-i386`     |
137
+| arm64v8   | 2.0.0   | `rustdesk/rustdesk-server-s6:2.0.0-arm64v8`  |
138
+| armv7     | 2.0.0   | `rustdesk/rustdesk-server-s6:2.0.0-armv7`    |
139
+
140
+强烈建议您使用`major version` 或 `latest` tag 的 `multiarch` 架构的镜像。
141
+
142
+S6-overlay 在此处作为监控程序,用以保证两个进程的运行,因此使用此镜像,您无需运行两个容器。
143
+
144
+您可以使用 `docker run` 命令直接启动镜像,如下:
145
+
146
+```bash
147
+docker run --name rustdesk-server \ 
148
+  --net=host \
149
+  -e "RELAY=rustdeskrelay.example.com" \
150
+  -e "ENCRYPTED_ONLY=1" \
151
+  -v "$PWD/data:/data" -d rustdesk/rustdesk-server-s6:latest
152
+```
153
+
154
+或刪去 `--net=host` 参数, 但 P2P 直连功能将无法工作。
155
+
156
+```bash
157
+docker run --name rustdesk-server \
158
+  -p 21115:21115 -p 21116:21116 -p 21116:21116/udp \
159
+  -p 21117:21117 -p 21118:21118 -p 21119:21119 \
160
+  -e "RELAY=rustdeskrelay.example.com" \
161
+  -e "ENCRYPTED_ONLY=1" \
162
+  -v "$PWD/data:/data" -d rustdesk/rustdesk-server-s6:latest
163
+```
164
+
165
+或着您也可以使用 docker-compose 文件:
166
+
167
+```yaml
168
+version: '3'
169
+
170
+services:
171
+  rustdesk-server:
172
+    container_name: rustdesk-server
173
+    ports:
174
+      - 21115:21115
175
+      - 21116:21116
176
+      - 21116:21116/udp
177
+      - 21117:21117
178
+      - 21118:21118
179
+      - 21119:21119
180
+    image: rustdesk/rustdesk-server-s6:latest
181
+    environment:
182
+      - "RELAY=rustdesk.example.com:21117"
183
+      - "ENCRYPTED_ONLY=1"
184
+    volumes:
185
+      - ./data:/data
186
+    restart: unless-stopped
187
+```
188
+
189
+对于此容器镜像,除了在下面的环境变量部分指定的变量之外,您还可以使用以下`环境变量`
190
+
191
+| 环境变量           | 是否可选 | 描述                       |
192
+|----------------|------|--------------------------|
193
+| RELAY          | 否    | 运行此容器的宿主机的 IP 地址/ DNS 名称 |
194
+| ENCRYPTED_ONLY | 是    | 如果设置为 **"1"**,将不接受未加密的连接。 |
195
+| KEY_PUB        | 是    | 密钥对中的公钥(Public Key)      |
196
+| KEY_PRIV       | 是    | 密钥对中的私钥(Private Key)     |
197
+
198
+###  基于 S6-overlay 镜像的密钥管理
199
+
200
+您可以将密钥对保存在 Docker volume 中,但我们建议不要将密钥写入文件系統中;因此,我们提供了一些方案。
201
+
202
+在容器启动时,会检查密钥对是否存在(`/data/id_ed25519.pub` 和 `/data/id_ed25519`),如果其中一個密钥不存在,则会从环境变量或 Docker Secret 中重新生成它。
203
+然后检查密钥对的可用性:如果公钥和私钥不匹配,容器将停止运行。
204
+如果您未提供密钥,`hbbs` 将会在默认位置生成一个。
205
+
206
+#### 使用 ENV 存储密钥对
207
+
208
+您可以使用 Docker 环境变量來存储密钥。如下:
209
+
210
+```bash
211
+docker run --name rustdesk-server \ 
212
+  --net=host \
213
+  -e "RELAY=rustdeskrelay.example.com" \
214
+  -e "ENCRYPTED_ONLY=1" \
215
+  -e "DB_URL=/db/db_v2.sqlite3" \
216
+  -e "KEY_PRIV=FR2j78IxfwJNR+HjLluQ2Nh7eEryEeIZCwiQDPVe+PaITKyShphHAsPLn7So0OqRs92nGvSRdFJnE2MSyrKTIQ==" \
217
+  -e "KEY_PUB=iEyskoaYRwLDy5+0qNDqkbPdpxr0kXRSZxNjEsqykyE=" \
218
+  -v "$PWD/db:/db" -d rustdesk/rustdesk-server-s6:latest
219
+```
220
+
221
+```yaml
222
+version: '3'
223
+
224
+services:
225
+  rustdesk-server:
226
+    container_name: rustdesk-server
227
+    ports:
228
+      - 21115:21115
229
+      - 21116:21116
230
+      - 21116:21116/udp
231
+      - 21117:21117
232
+      - 21118:21118
233
+      - 21119:21119
234
+    image: rustdesk/rustdesk-server-s6:latest
235
+    environment:
236
+      - "RELAY=rustdesk.example.com:21117"
237
+      - "ENCRYPTED_ONLY=1"
238
+      - "DB_URL=/db/db_v2.sqlite3"
239
+      - "KEY_PRIV=FR2j78IxfwJNR+HjLluQ2Nh7eEryEeIZCwiQDPVe+PaITKyShphHAsPLn7So0OqRs92nGvSRdFJnE2MSyrKTIQ=="
240
+      - "KEY_PUB=iEyskoaYRwLDy5+0qNDqkbPdpxr0kXRSZxNjEsqykyE="
241
+    volumes:
242
+      - ./db:/db
243
+    restart: unless-stopped
244
+```
245
+
246
+#### 使用 Docker Secret 來保存密钥对
247
+
248
+您还可以使用 Docker Secret 來保存密钥。
249
+如果您使用 **docker-compose** 或 **docker swarm**,推荐您使用。
250
+只需按照以下示例操作:
251
+
252
+```bash
253
+cat secrets/id_ed25519.pub | docker secret create key_pub -
254
+cat secrets/id_ed25519 | docker secret create key_priv -
255
+docker service create --name rustdesk-server \
256
+  --secret key_priv --secret key_pub \
257
+  --net=host \
258
+  -e "RELAY=rustdeskrelay.example.com" \
259
+  -e "ENCRYPTED_ONLY=1" \
260
+  -e "DB_URL=/db/db_v2.sqlite3" \
261
+  --mount "type=bind,source=$PWD/db,destination=/db" \
262
+  rustdesk/rustdesk-server-s6:latest
263
+```
264
+
265
+```yaml
266
+version: '3'
267
+
268
+services:
269
+  rustdesk-server:
270
+    container_name: rustdesk-server
271
+    ports:
272
+      - 21115:21115
273
+      - 21116:21116
274
+      - 21116:21116/udp
275
+      - 21117:21117
276
+      - 21118:21118
277
+      - 21119:21119
278
+    image: rustdesk/rustdesk-server-s6:latest
279
+    environment:
280
+      - "RELAY=rustdesk.example.com:21117"
281
+      - "ENCRYPTED_ONLY=1"
282
+      - "DB_URL=/db/db_v2.sqlite3"
283
+    volumes:
284
+      - ./db:/db
285
+    restart: unless-stopped
286
+    secrets:
287
+      - key_pub
288
+      - key_priv
289
+
290
+secrets:
291
+  key_pub:
292
+    file: secrets/id_ed25519.pub
293
+  key_priv:
294
+    file: secrets/id_ed25519      
295
+```
296
+
297
+## 如何生成密钥对
298
+
299
+加密需要一对密钥;您可以按照前面所述提供它,但需要一个工具去生成密钥对。
300
+
301
+您可以使用以下命令生成一对密钥:
302
+
303
+```bash
304
+/usr/bin/rustdesk-utils genkeypair
305
+```
306
+
307
+如果您沒有(或不想)在系统上安装 `rustdesk-utils` 套件,您可以使用 Docker 执行相同的命令:
308
+
309
+```bash
310
+docker run --rm --entrypoint /usr/bin/rustdesk-utils  rustdesk/rustdesk-server-s6:latest genkeypair
311
+```
312
+
313
+运行后的输出内容如下:
314
+
315
+```text
316
+Public Key:  8BLLhtzUBU/XKAH4mep3p+IX4DSApe7qbAwNH9nv4yA=
317
+Secret Key:  egAVd44u33ZEUIDTtksGcHeVeAwywarEdHmf99KM5ajwEsuG3NQFT9coAfiZ6nen4hfgNICl7upsDA0f2e/jIA==
318
+```
319
+
320
+## .deb 套件
321
+
322
+每个可执行文件都有单独的 .deb 套件可供使用,您可以在 [releases](https://github.com/rustdesk/rustdesk-server/releases) 页面中找到它們。
323
+這些套件适用于以下发行版:
324
+
325
+- Ubuntu 22.04 LTS
326
+- Ubuntu 20.04 LTS
327
+- Ubuntu 18.04 LTS
328
+- Debian 11 bullseye
329
+- Debian 10 buster
330
+
331
+## ENV 环境变量
332
+
333
+可以使用这些`环境变量`参数來配置 hbbs 和 hbbr。
334
+您可以像往常一样指定参数,或者使用 .env 文件。
335
+
336
+| 参数                    | 可执行文件         | 描述                                               |
337
+|-----------------------|---------------|--------------------------------------------------|
338
+| ALWAYS_USE_RELAY      | hbbs          | 如果设定为 **"Y"**,将关闭直接点对点连接功能                       |
339
+| DB_URL                | hbbs          | 数据库配置                                            |
340
+| DOWNGRADE_START_CHECK | hbbr          | 降级检查之前的延迟是啊尽(以秒为单位)                              |
341
+| DOWNGRADE_THRESHOLD   | hbbr          | 降级检查的阈值(bit/ms)                                  |
342
+| KEY                   | hbbs/hbbr     | 如果设置了此参数,将强制使用指定密钥对,如果设为 **"_"**,则强制使用任意密钥       |
343
+| LIMIT_SPEED           | hbbr          | 速度限制(以Mb/s为单位)                                   |
344
+| PORT                  | hbbs/hbbr     | 监听端口(hbbs为21116,hbbr为21117)                      |
345
+| RELAY_SERVERS         | hbbs          | 运行hbbr的机器的IP地址/DNS名称(用逗号分隔)                      |
346
+| RUST_LOG              | all           | 设置 debug level (error\|warn\|info\|debug\|trace) |
347
+| SINGLE_BANDWIDTH      | hbbr          | 单个连接的最大带宽(以Mb/s为单位)                              |
348
+| TOTAL_BANDWIDTH       | hbbr          | 最大总带宽(以Mb/s为单位)                                  |

+ 1 - 1
README.md

@@ -5,7 +5,7 @@
5 5
   <a href="#how-to-create-a-keypair">Keypair</a> •
6 6
   <a href="#deb-packages">Debian</a> •
7 7
   <a href="#env-variables">Variables</a><br>
8
-  [<a href="README-DE.md">Deutsch</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-TW.md">繁體中文</a>]<br>
8
+  [<a href="README-DE.md">Deutsch</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-TW.md">繁體中文</a>] | [<a href="README-ZH.md">简体中文</a>]<br>
9 9
 </p>
10 10
 
11 11
 # RustDesk Server Program