Rustdesk server | Rustdesk 中繼伺服器架設教學 (Linux)
===
###### tags: `Linux` `LXC` `Rustdesk`
作者:魏礼謙
## Preface 前言
Rustdesk 是開源的遠端桌面工具,二台電腦可以經由中繼伺服器建立加密的 TCP 通道進行連線,傳輸電腦畫面、剪貼簿資料、檔案。
一般使用者使用 Rustdesk 客戶端時,預設使用官方提供的中繼伺服器,但為了提升連線穩定度、安全性,可以使用官方提供的中繼伺服器軟體自行架設服務。
## Requirement 需求
以下是架設 Rustdesk 中繼伺服器需要的東西:
- **一台安裝中繼伺服器軟體的電腦**
- 可以是實體機、VM、LXC、Docker。
- 作業系統可以是 Windows 或 Linux (Debian 系、RadHat系皆可)。
- 一個要配發給中繼伺服器軟體用的使用者帳號,並且擁有管理員的權限 (Linux: sudo,Windows: Run as Administrator)。
- 有網路連線。(廢話)
- **一個 IP 位置**,如果這個伺服器要在網際網路使用,那就需要公開的固定 IP 或公開的網址 domain。
:::info
本人測試的環境是在 Debian 的 LXC,使用公開的網址,背後是 DDNS 到個人的家用網路。
使用 Rustdesk 1.1.9,Rustdesk-server 1.1.7。
:::
## Server Installation 伺服器安裝
這篇教學只提供 Linux 的方式,Windows 的請另洽其他網路資源。
請先確認目前是在要安裝伺服器的使用者下,並且此使用者可以執行 sudo。
如果需要建立使用者,請參考:
```=
groupadd rdserver
useradd rdserver -g rdserver -m -r
usermod -aG sudo rdserver
passwd rdserver
```
設定好使用者後,就切換到那個使用者 `~# su - rdserver` 。
假設現在已經可以看到使用者的提示輸入 (Prompt),那接著,先設定防火牆連線規則,再安裝設定中繼伺服器。
### 設定防火牆連線
這邊以 ufw 防火牆示範。
```=
ufw allow proto tcp from YOURIP to any port 22
ufw allow 21115:21119/tcp
ufw allow 8000/tcp
ufw allow 21116/udp
sudo ufw enable
```
指令說明:(對應行號)
1. 設定外部 ssh 連線可以進到本機管理。
2. Rustdesk 中繼伺服器會用到的 port,至少要開 21115:21117/tcp*,
3. 一個 http 服務,裡面有可以自動設定客戶端使用這個自建中繼伺服器的設定檔,非必要可不使用,就不需要打開這個 port 了。
4. Rustdesk 中繼伺服器會用到的 port*,必須開啟。
5. 使上述設定生效。
*上述 port 的詳細用途請參考 [官方文件](https://rustdesk.com/docs/zh-tw/self-host/install/#步驟2-在服務器上運行-hbbs-和-hbbr)。
防火牆設定好之後,就可以安裝伺服器了。
### 安裝設定中繼伺服器
直接使用官方文件推薦的指令腳本安裝。
```=
wget https://raw.githubusercontent.com/dinger1986/rustdeskinstall/master/install.sh
chmod +x install.sh
./install.sh
```
執行 ==install.sh== 安裝過程有二個需要注意選項:
1. **Choose your preferred option, IP or DNS/Domain:** (使用 IP/domain):這是用在讓用戶端連接這臺中繼伺服器的位址,若是僅在區網或有固定 IP 的地方使用,可以選擇 IP;若是有 DNS 或 DDNS 解析域名,則可以用 domain。
2. **Please choose if you want to download configs and install HTTP server:** (安裝 http 伺服器):功能是提供客戶端使用這個自建中繼伺服器的自動設定設定檔,它會在本機上多安裝一個 gohttpserver,使用 8000/tcp port。
- 建議不安裝。因為手動在客戶端設定也不複雜,不需要多增加一個暴露服務的風險。
安裝成功會出現如下的資訊,之後會用來設定 Rustdesk 客戶端使用這個中繼伺服器。
```
Your IP/DNS Address is [rdserver.yourdomain.com]
Your public key is [AAABBBCCCDDDEEEFFF1112223334445556667777=]
Install Rustdesk on your machines and change your public key and IP/DNS name to the above
You can access your install scripts for clients by going to [http://rdserver.yourdomain.com:8000]
Username is admin and password is [YourPassword123]
```
這些資訊最重要的是 IP/DNS Address 和 public key。
## Client side Settings 客戶端設定
1. 在已經安裝 Rustdesk 客戶端軟體的電腦,打開 **ID/轉送伺服器** 的選項,如下圖所示

2. 把剛才安裝完成拿到的伺服器資訊依序填入,如下圖所示

:::success
把連線與被連線電腦都設定好後,即可開始使用自建的中繼伺服器使用 Rustdesk 囉!
:::
## Reference 參考資料
- [RustDesk文檔 > 自建服務器 (官方文件)](https://rustdesk.com/docs/zh-tw/self-host/)
- [techahold/rustdeskinstall (github)](https://github.com/techahold/rustdeskinstall)
## Side Note 附記
- [Remmina](https://gitlab.com/Remmina/Remmina):一個類似 Rustdesk 的開源遠端桌面方案。