Skip to content

Commit bac9548

Browse files
authored
Add README for Traditional Chinese (#364)
* Add README-TW.md * Add "繁體中文" hyperlink to README.md * Add English hyperlink to README-TW.md * Add "繁體中文" hyperlink to README-NL.md * Add "繁體中文" hyperlink to README-DE.md
1 parent 79f0eb4 commit bac9548

File tree

4 files changed

+350
-3
lines changed

4 files changed

+350
-3
lines changed

README-DE.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<a href="#ein-schlüsselpaar-erstellen">Schlüsselpaar</a> •
66
<a href="#debian-pakete">Debian-Pakete</a> •
77
<a href="#umgebungsvariablen">Umgebungsvariablen</a><br>
8-
[<a href="README.md">English</a>] | [<a href="README-NL.md">Nederlands</a>]<br>
8+
[<a href="README.md">English</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-TW.md">繁體中文</a>]<br>
99
</p>
1010

1111
# RustDesk Server-Programm

README-NL.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<a href="#hoe-maak-je-een-key-paar">Key paar</a> •
66
<a href="#deb-pakketten">Debian pakketten</a> •
77
<a href="#env-variabelen">ENV variabelen</a><br>
8-
[<a href="README.md">English</a>] | [<a href="README-DE.md">Deutsch</a>]<br>
8+
[<a href="README.md">English</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-TW.md">繁體中文</a>]<br>
99
</p>
1010

1111
# RustDesk Server Programa

README-TW.md

+347
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,347 @@
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>]<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-tw/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 發布時自動生成並發布。我們有兩種映像檔。
44+
45+
### Classic 映像檔
46+
47+
這些映像檔是基於 `ubuntu-20.04` 建置的,僅添加了兩個主要的執行檔(`hbbr``hbbs`)。它們可在 [Docker Hub](https://hub.docker.com/r/rustdesk/rustdesk-server/) 上取得,帶有以下tags:
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 名稱)。如果您為 `hbbr` 使用的端口不是 **21117**,則必須使用 **可選**`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)。 它們在以及這些 tags 在 [Docker hub](https://hub.docker.com/r/rustdesk/rustdesk-server-s6/) 可用:
120+
121+
| 架構 | version | image:tag |
122+
| --------- | ------- | -------------------------------------------- |
123+
| multiarch | latest | `rustdesk/rustdesk-server-s6:latest` |
124+
| amd64 | latest | `rustdesk/rustdesk-server-s6:latest-amd64` |
125+
| i386 | latest | `rustdesk/rustdesk-server-s6:latest-i386` |
126+
| arm64v8 | latest | `rustdesk/rustdesk-server-s6:latest-arm64v8` |
127+
| armv7 | latest | `rustdesk/rustdesk-server-s6:latest-armv7` |
128+
| multiarch | 2 | `rustdesk/rustdesk-server-s6:2` |
129+
| amd64 | 2 | `rustdesk/rustdesk-server-s6:2-amd64` |
130+
| i386 | 2 | `rustdesk/rustdesk-server-s6:2-i386` |
131+
| arm64v8 | 2 | `rustdesk/rustdesk-server-s6:2-arm64v8` |
132+
| armv7 | 2 | `rustdesk/rustdesk-server-s6:2-armv7` |
133+
| multiarch | 2.0.0 | `rustdesk/rustdesk-server-s6:2.0.0` |
134+
| amd64 | 2.0.0 | `rustdesk/rustdesk-server-s6:2.0.0-amd64` |
135+
| i386 | 2.0.0 | `rustdesk/rustdesk-server-s6:2.0.0-i386` |
136+
| arm64v8 | 2.0.0 | `rustdesk/rustdesk-server-s6:2.0.0-arm64v8` |
137+
| armv7 | 2.0.0 | `rustdesk/rustdesk-server-s6:2.0.0-armv7` |
138+
139+
強烈建議您使用 `multiarch` 映象檔 可以選擇使用 `major version` 或 `latest` tags。
140+
141+
S6-overlay 在此充當監督程序,保持兩個進程運行,因此使用此映象檔,您無需運行兩個獨立的容器。
142+
143+
您可以直接使用以下命令使用 `docker run` 來啟動這個映象檔:
144+
145+
```bash
146+
docker run --name rustdesk-server \
147+
--net=host \
148+
-e "RELAY=rustdeskrelay.example.com" \
149+
-e "ENCRYPTED_ONLY=1" \
150+
-v "$PWD/data:/data" -d rustdesk/rustdesk-server-s6:latest
151+
```
152+
153+
或刪去 `--net=host`, 但 P2P 直接連線會無法運作。
154+
155+
```bash
156+
docker run --name rustdesk-server \
157+
-p 21115:21115 -p 21116:21116 -p 21116:21116/udp \
158+
-p 21117:21117 -p 21118:21118 -p 21119:21119 \
159+
-e "RELAY=rustdeskrelay.example.com" \
160+
-e "ENCRYPTED_ONLY=1" \
161+
-v "$PWD/data:/data" -d rustdesk/rustdesk-server-s6:latest
162+
```
163+
164+
或是您可以使用 docker-compose 文件:
165+
166+
```yaml
167+
version: '3'
168+
169+
services:
170+
rustdesk-server:
171+
container_name: rustdesk-server
172+
ports:
173+
- 21115:21115
174+
- 21116:21116
175+
- 21116:21116/udp
176+
- 21117:21117
177+
- 21118:21118
178+
- 21119:21119
179+
image: rustdesk/rustdesk-server-s6:latest
180+
environment:
181+
- "RELAY=rustdesk.example.com:21117"
182+
- "ENCRYPTED_ONLY=1"
183+
volumes:
184+
- ./data:/data
185+
restart: unless-stopped
186+
```
187+
188+
對於此容器映象檔,您可以使用這些環境變數,**除了**以下**環境變數**部分指定的那些。
189+
190+
| 環境變數 | 是否可選 | 敘述 |
191+
| -------------- | -------- | ------------------------------------------ |
192+
| RELAY | 否 | 運行此容器的機器的 IP 地址/ DNS 名稱 |
193+
| ENCRYPTED_ONLY | 是 | 如果設置為 **"1"**,將不接受未加密的連接。 |
194+
| KEY_PUB | 是 | 金鑰對中的公鑰(Public Key) |
195+
| KEY_PRIV | 是 | 金鑰對中的私鑰(Private Key) |
196+
197+
### 在基於 S6-overlay 的 Secret 管理
198+
199+
您可以將金鑰對保存在 Docker volume 中,但最佳實踐建議不要將金鑰寫入文件系統;因此,我們提供了一些選項。
200+
201+
在容器啟動時,會檢查金鑰對的是否存在(`/data/id_ed25519.pub` 和 `/data/id_ed25519`),如果其中一個金鑰不存在,則會從環境變數或 Docker Secret 重新生成它。
202+
然後檢查金鑰對的有效性:如果公鑰和私鑰不匹配,容器將停止運行。
203+
如果您未提供金鑰,`hbbs` 將為您產生一個,並將其放置在默認位置。
204+
205+
#### 使用 ENV 存儲金鑰對
206+
207+
您可以使用 Docker 環境變數來儲存金鑰。只需按照以下範例操作:
208+
209+
```bash
210+
docker run --name rustdesk-server \
211+
--net=host \
212+
-e "RELAY=rustdeskrelay.example.com" \
213+
-e "ENCRYPTED_ONLY=1" \
214+
-e "DB_URL=/db/db_v2.sqlite3" \
215+
-e "KEY_PRIV=FR2j78IxfwJNR+HjLluQ2Nh7eEryEeIZCwiQDPVe+PaITKyShphHAsPLn7So0OqRs92nGvSRdFJnE2MSyrKTIQ==" \
216+
-e "KEY_PUB=iEyskoaYRwLDy5+0qNDqkbPdpxr0kXRSZxNjEsqykyE=" \
217+
-v "$PWD/db:/db" -d rustdesk/rustdesk-server-s6:latest
218+
```
219+
220+
```yaml
221+
version: '3'
222+
223+
services:
224+
rustdesk-server:
225+
container_name: rustdesk-server
226+
ports:
227+
- 21115:21115
228+
- 21116:21116
229+
- 21116:21116/udp
230+
- 21117:21117
231+
- 21118:21118
232+
- 21119:21119
233+
image: rustdesk/rustdesk-server-s6:latest
234+
environment:
235+
- "RELAY=rustdesk.example.com:21117"
236+
- "ENCRYPTED_ONLY=1"
237+
- "DB_URL=/db/db_v2.sqlite3"
238+
- "KEY_PRIV=FR2j78IxfwJNR+HjLluQ2Nh7eEryEeIZCwiQDPVe+PaITKyShphHAsPLn7So0OqRs92nGvSRdFJnE2MSyrKTIQ=="
239+
- "KEY_PUB=iEyskoaYRwLDy5+0qNDqkbPdpxr0kXRSZxNjEsqykyE="
240+
volumes:
241+
- ./db:/db
242+
restart: unless-stopped
243+
```
244+
245+
#### 使用 Docker Secret 來儲存金鑰對
246+
247+
您還可以使用 Docker Secret來儲存金鑰。
248+
如果您使用 **docker-compose** 或 **docker swarm**,這很有用。
249+
只需按照以下示例操作:
250+
251+
```bash
252+
cat secrets/id_ed25519.pub | docker secret create key_pub -
253+
cat secrets/id_ed25519 | docker secret create key_priv -
254+
docker service create --name rustdesk-server \
255+
--secret key_priv --secret key_pub \
256+
--net=host \
257+
-e "RELAY=rustdeskrelay.example.com" \
258+
-e "ENCRYPTED_ONLY=1" \
259+
-e "DB_URL=/db/db_v2.sqlite3" \
260+
--mount "type=bind,source=$PWD/db,destination=/db" \
261+
rustdesk/rustdesk-server-s6:latest
262+
```
263+
264+
```yaml
265+
version: '3'
266+
267+
services:
268+
rustdesk-server:
269+
container_name: rustdesk-server
270+
ports:
271+
- 21115:21115
272+
- 21116:21116
273+
- 21116:21116/udp
274+
- 21117:21117
275+
- 21118:21118
276+
- 21119:21119
277+
image: rustdesk/rustdesk-server-s6:latest
278+
environment:
279+
- "RELAY=rustdesk.example.com:21117"
280+
- "ENCRYPTED_ONLY=1"
281+
- "DB_URL=/db/db_v2.sqlite3"
282+
volumes:
283+
- ./db:/db
284+
restart: unless-stopped
285+
secrets:
286+
- key_pub
287+
- key_priv
288+
289+
secrets:
290+
key_pub:
291+
file: secrets/id_ed25519.pub
292+
key_priv:
293+
file: secrets/id_ed25519
294+
```
295+
296+
## 如何建立金鑰對
297+
298+
加密需要一對金鑰;您可以按照前面所述提供它,但需要一種生成金鑰對的方法。
299+
300+
您可以使用以下命令生成一對金鑰:
301+
302+
```bash
303+
/usr/bin/rustdesk-utils genkeypair
304+
```
305+
306+
如果您沒有(或不想)在系統上安裝 `rustdesk-utils` 套件,您可以使用 Docker執行相同的命令:
307+
308+
```bash
309+
docker run --rm --entrypoint /usr/bin/rustdesk-utils rustdesk/rustdesk-server-s6:latest genkeypair
310+
```
311+
312+
輸出將類似於以下內容:
313+
314+
```text
315+
Public Key: 8BLLhtzUBU/XKAH4mep3p+IX4DSApe7qbAwNH9nv4yA=
316+
Secret Key: egAVd44u33ZEUIDTtksGcHeVeAwywarEdHmf99KM5ajwEsuG3NQFT9coAfiZ6nen4hfgNICl7upsDA0f2e/jIA==
317+
```
318+
319+
## .deb 套件
320+
321+
每個執行檔都有單獨的 .deb 套件可供使用,您可以在 [releases](https://github.com/rustdesk/rustdesk-server/releases) 中找到它們。
322+
這些套件適用於以下發行版:
323+
324+
- Ubuntu 22.04 LTS
325+
- Ubuntu 20.04 LTS
326+
- Ubuntu 18.04 LTS
327+
- Debian 11 bullseye
328+
- Debian 10 buster
329+
330+
## ENV 環境參數
331+
332+
可以使用這些 ENV 參數來配置 hbbs 和 hbbr。
333+
您可以像往常一樣指定參數,或者使用 .env 文件。
334+
335+
| 參數 | 執行檔 | 敘述 |
336+
| --------------------- | --------- | -------------------------------------------------------------------- |
337+
| ALWAYS_USE_RELAY | hbbs | 如果設為 **"Y"**,禁止直接點對點連接 |
338+
| DB_URL | hbbs | 資料庫的路徑 |
339+
| DOWNGRADE_START_CHECK | hbbr | 降級檢查之前的延遲時間(以秒為單位) |
340+
| DOWNGRADE_THRESHOLD | hbbr | 降級檢查的閾值(bit/ms) |
341+
| KEY | hbbs/hbbr | 如果設置了,將強制使用特定金鑰,如果設為 **"_"**,則強制使用任何金鑰 |
342+
| LIMIT_SPEED | hbbr | 速度限制(以Mb/s為單位) |
343+
| PORT | hbbs/hbbr | 監聽端口(hbbs為21116,hbbr為21117) |
344+
| RELAY_SERVERS | hbbs | 運行hbbr的機器的IP地址/DNS名稱(用逗號分隔) |
345+
| RUST_LOG | all | 設定 debug level (error\|warn\|info\|debug\|trace) |
346+
| SINGLE_BANDWIDTH | hbbr | 單個連接的最大頻寬(以Mb/s為單位) |
347+
| TOTAL_BANDWIDTH | hbbr | 最大總頻寬(以Mb/s為單位) |

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<a href="#how-to-create-a-keypair">Keypair</a> •
66
<a href="#deb-packages">Debian</a> •
77
<a href="#env-variables">Variables</a><br>
8-
[<a href="README-DE.md">Deutsch</a>] | [<a href="README-NL.md">Nederlands</a>]<br>
8+
[<a href="README-DE.md">Deutsch</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-TW.md">繁體中文</a>]<br>
99
</p>
1010

1111
# RustDesk Server Program

0 commit comments

Comments
 (0)