doc.rustdesk.com/content/self-host/install/_index.zh-tw.md
2022-04-21 15:33:05 +08:00

127 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 安裝
weight: 10
---
## 如何自建中繼
-----------
### 步驟1: 下載服務器端軟件程序
[下載](https://gitee.com/rustdesk/rustdesk-server/)或者使用docker[rustdesk/rustdesk-server](https://hub.docker.com/r/rustdesk/rustdesk-server/tags)。
<!-- **注意** 你需要[購買許可](https://rustdesk.com/server/)才能正常運行本程序 -->
提供版本:
- Linux
- Windows
以下針對Linux版本做使用說明。
有兩個可執行文件和一個文件夾:
- hbbs - RustDesk ID註冊服務器
- hbbr - RustDesk 中繼服務器
- static - 該文件夾中包含網頁控制台所有文件
Linux版本在Centos7構建在 Centos7/8Ubuntu 18/20上測試過Debian系列的發行版本應該都沒有問題。如果有其他發行版本需求請聯繫我。
#### 服務器要求
硬件要求很低最低配置的雲服務器就可以了CPU和內存要求都是最小的。關於網絡大小如果TCP打洞直連失敗就要耗費中繼流量一個中繼連接的流量在30k-3M每秒之間1920x1080屏幕取決於清晰度設置和畫面變化如果只是辦公需求平均在100K。
### 步驟2: 在服務器上運行 hbbs 和 hbbr
在服務器上運行 hbbs/hbbr (Centos 或 Ubuntu)。建議使用[pm2](https://pm2.keymetrics.io/) 管理服務。
```
./hbbs -r <hbbr運行所在主機的地址> -m <registered_email>
./hbbr -m <registered_email>
```
{{% notice note %}}
**請為 <registered_email> 輸入 `demo` 進行試用。**
{{% /notice %}}
{{% notice note %}}
hhbs的-r參數不是必須的他只是方便你不用在客戶端指定中繼服務器。客戶端指定的中繼服務器優先級高於這個。
{{% /notice %}}
默認情況下hbbs 監聽21114(tcp), 21115(tcp), 21116(tcp/udp), 21118(tcp)hbbr 監聽21117(tcp), 21119(tcp)。務必在防火牆開啟這幾個端口, **請注意21116同時要開啟TCP和UDP**。其中21114是網頁控制台+API21115是hbbs用作NAT類型測試21116/UDP是hbbs用作ID註冊與心跳服務21116/TCP是hbbs用作TCP打洞與連接服務21117是hbbr用作中繼服務, 21118和21119是為了支持網頁客戶端。如果您不需要網頁控制台+API21114或者網頁客戶端2111821119支持對應端口可以不開。
- TCP(21114, 21115, 21116, 21117, 21118, 21119)
- UDP(21116)
如果你想選擇**自己的端口**,使用 “-h” 選項查看幫助。
#### Docker示範
##### Linux/amd64
```
sudo docker image pull rustdesk/rustdesk-server
sudo docker run --name hbbs -p 21114:21114 -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server hbbs -r <relay-server-ip> -m <registered_email>
sudo docker run --name hbbr -p 21117:21117 -p 21119:21119 -v `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server hbbr -m <registered_email>
```
##### Linux/arm64v8
```
sudo docker image pull rustdesk/rustdesk-server:latest-arm64v8
sudo docker run --name hbbs -p 21114:21114 -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server:latest-arm64v8 hbbs -r <relay-server-ip> -m <registered_email>
sudo docker run --name hbbr -p 21117:21117 -p 21119:21119 -v `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server:latest-arm64v8 hbbr -m <registered_email>
```
<a name="net-host"></a>
{{% notice note %}}
據我所知,--net=host 僅適用於 Linux它讓 hbbs/hbbr 可以看到對方真實的ip, 而不是固定的容器ip (172.17.0.1)。
如果--net=host運行正常-p選項就不起作用了, 可以去掉。
****請去掉 --net=host如果您在非Linux系統上遇到無法連接的問題**
{{% /notice %}}
### 步驟3: 在客戶端設置 hbbs/hbbr 地址
{{% notice note %}}
對於Windows客戶端可以選用[Windows EXE](/docs/zh-tw/self-host/console/#windows-exe)方案,免填自定義服務器配置。
{{% /notice %}}
點擊 ID 右側的菜單按鈕如下,選擇“ ID/中繼服務器”。
![](/docs/en/self-host/install/images/server-set-menu.png)
在 ID 服務器輸入框中(被控端+主控端)輸入 hbbs 主機或 ip 地址另外兩個地址可以不填RustDesk會自動推導如果沒有特別設定中繼服務器指的是hbbr21116端口API服務器指的是上面的網頁控制台+API21114
{{% notice note %}}
圖中的Key不是指的註冊郵箱[下節](#key)將會具體解釋。
{{% /notice %}}
例如:
```
hbbs.yourhost.com
```
或者
```
hbbs.yourhost.com:21116
```
![](/docs/en/self-host/install/images/server-set-window.png)
## Key
-----------
同上個版本不同本版本中的Key是強制的但是不用你自己設置。hbbs在第一次運行時會自動產生一對加密私鑰和公鑰分別位於運行目錄下的`id_ed25519`和`id_ed25519.pub`文件中其主要用途是為了通訊加密如果您在上一步驟中沒有填寫Key(公鑰文件`id_ed25519.pub`中的內容),不影響連接,但是連接無法加密。
```
cat ./id_ed25519.pub
```
如果您禁止沒有Key的用戶建立非加密連接請在運行hbbs和hbbr的時候添加`-k _ `參數,例如:
```
./hbbs -r <hbbr運行所在主機的地址> -k _
./hbbr -k _
```
如果要更改key請刪除 `id_ed25519``id_ed25519.pub` 文件並重新啟動 hbbs/hbbr。
{{% notice note %}}
在[控制台](/docs/zh-tw/self-host/console/)歡迎頁面點擊Windows EXE也可以看到Key。
{{% /notice %}}