如果需要搭建自己的遠端桌面服務,RustDesk 是一個相當實用的開源方案。透過將 RustDesk Server 部署到自己的 LuckVM 雲伺服器上,可以自行管理 ID 伺服器與 Relay 中繼服務,不需要完全依賴第三方遠端桌面平台,同時也能更方便地控制伺服器和網路環境。
本文以 LuckVM 雲伺服器 + Ubuntu 24.04 + Docker Compose 為例,從 Docker 安裝、RustDesk Server 部署、伺服器防火牆設定,到取得 Server Key、配置 RustDesk 客戶端以及常見問題排查,完整介紹如何建立一套自己的 RustDesk 遠端桌面伺服器。.png)
一、部署 RustDesk Server 需要什麼條件?
如果主要是個人遠端辦公或少量設備使用,RustDesk Server 對雲伺服器硬體配置要求並不高。一般來說,一台入門級 LuckVM 雲伺服器就可以滿足基本需求。
| 項目 | 建議配置 |
|---|---|
| 作業系統 | Ubuntu 22.04 / Ubuntu 24.04 |
| CPU | 1 核心以上 |
| 記憶體 | 1GB 以上 |
| 硬碟 | 10GB 以上 |
| IP 位址 | 可從公網存取的 IPv4 |
| 網路 | 需要開放 RustDesk 所需服務埠 |
如果主要使用 P2P 直連,伺服器本身不需要承擔大量資料傳輸。但當兩台設備無法直接建立 P2P 連線時,就可能使用 Relay 中繼服務,這時候伺服器的公網頻寬、網路品質以及流量限制就會變得更加重要。
二、RustDesk Server 有什麼作用?
RustDesk Server 主要包含兩個核心服務:
- hbbs:負責 ID 註冊、設備發現以及連線協調。
- hbbr:負責 Relay 中繼,當兩台客戶端無法建立直接 P2P 連線時,透過伺服器轉發資料。
正常情況下,RustDesk 的連線流程可以簡單理解為:
電腦 A
│
▼
hbbs
│
▼
嘗試 P2P 直連
│
▼
電腦 B
如果兩台設備無法建立直接連線,則可能透過 Relay 伺服器:
電腦 A
│
▼
hbbs
│
▼
hbbr
│
▼
電腦 B
因此,如果希望建立完整的 RustDesk 自建服務,通常需要同時運行 hbbs 和 hbbr。
三、登入 LuckVM 雲伺服器
首先透過 SSH 登入 LuckVM 雲伺服器。如果使用 root 帳戶,可以執行:
ssh root@你的伺服器IP
例如:
ssh root@123.123.123.123
登入後先更新 Ubuntu 系統:
apt update
apt upgrade -y
四、安裝 Docker
使用 Docker Compose 部署 RustDesk,可以降低後續管理和升級的難度。首先安裝 Docker:
curl -fsSL https://get.docker.com | sh
安裝完成後檢查 Docker:
docker --version
接著檢查 Docker Compose:
docker compose version
如果兩個命令都能正常顯示版本資訊,代表 Docker 環境已經可以使用。
五、建立 RustDesk 資料目錄
建議為 RustDesk 建立獨立的資料目錄:
mkdir -p /opt/rustdesk/data
cd /opt/rustdesk
最終目錄結構如下:
/opt/rustdesk/
├── docker-compose.yml
└── data/
data 目錄非常重要。RustDesk Server 會在這裡保存伺服器金鑰及相關持久化資料。後續升級 RustDesk 時,不要隨意刪除這個目錄,否則可能造成伺服器 Key 發生變化。
六、建立 Docker Compose 設定檔
建立 Docker Compose 設定:
nano /opt/rustdesk/docker-compose.yml
將以下內容貼入:
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs
volumes:
- ./data:/root
network_mode: "host"
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped
儲存檔案並離開 Nano:
Ctrl + O
Enter
Ctrl + X
這裡使用 network_mode: "host",讓 RustDesk 容器直接使用主機網路,配置相對簡單,也不需要額外設定 Docker 端口映射。
七、啟動 RustDesk Server
進入 RustDesk 目錄:
cd /opt/rustdesk
先下載 RustDesk Server Docker 映像:
docker compose pull
啟動服務:
docker compose up -d
查看容器狀態:
docker compose ps
正常情況下,可以看到 hbbs 和 hbbr 兩個服務正在運行。
查看 hbbs 日誌:
docker logs hbbs
查看 hbbr 日誌:
docker logs hbbr
八、開放 LuckVM 雲伺服器端口
RustDesk 部署過程中,最常見的問題之一就是伺服器防火牆沒有正確開放服務端口。
| 端口 | 協議 | 用途 |
|---|---|---|
| 21115 | TCP | NAT 類型檢測 |
| 21116 | TCP | TCP 連線及 ID 服務 |
| 21116 | UDP | ID 註冊及心跳 |
| 21117 | TCP | Relay 中繼服務 |
| 21118 | TCP | Web Client,可選 |
| 21119 | TCP | Web Client Relay,可選 |
一般 RustDesk 客戶端使用時,建議至少開放:
21115 TCP
21116 TCP
21116 UDP
21117 TCP
九、使用 UFW 開放端口
如果 Ubuntu 啟用了 UFW 防火牆,可以執行:
ufw allow 21115/tcp
ufw allow 21116/tcp
ufw allow 21116/udp
ufw allow 21117/tcp
重新載入防火牆:
ufw reload
查看目前防火牆規則:
ufw status
如果 LuckVM 控制台另外提供了安全組或雲防火牆,也需要在 LuckVM 後台同步開放這些端口。
整體網路結構可能是:
Internet
↓
LuckVM 安全組
↓
Ubuntu UFW
↓
Docker
↓
RustDesk
任何一層阻擋對應端口,都可能導致 RustDesk 客戶端無法連線。
十、取得 RustDesk Server Key
RustDesk Server 啟動後,會自動生成伺服器金鑰。
執行:
cat /opt/rustdesk/data/id_ed25519.pub
執行後會得到一串字串,例如:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
這就是 RustDesk 客戶端需要填寫的 Public Key。
資料目錄中通常會存在兩個金鑰檔案:
id_ed25519
id_ed25519.pub
其中:
id_ed25519是私鑰。id_ed25519.pub是公鑰。
不要公開或分享 id_ed25519 私鑰。客戶端只需要使用 id_ed25519.pub 中的內容。
十一、配置 RustDesk 客戶端
在電腦上開啟 RustDesk,進入:
設定 → 網路
找到 ID Server,填入 LuckVM 雲伺服器的公網 IP。
例如:
123.123.123.123
Key 則填入前面取得的:
cat /opt/rustdesk/data/id_ed25519.pub
如果需要手動指定 Relay Server,可以填寫:
123.123.123.123:21117
儲存設定後重新啟動 RustDesk 客戶端。
十二、使用網域名稱配置 RustDesk
如果 RustDesk 會長期使用,建議不要讓所有客戶端直接使用伺服器 IP,而是建立一個專用網域名稱。
例如建立:
rustdesk.example.com
然後新增 DNS A 記錄:
rustdesk.example.com → LuckVM 公網 IP
之後 RustDesk 客戶端可以設定:
ID Server:
rustdesk.example.com
Relay Server:
rustdesk.example.com:21117
這樣未來如果更換 LuckVM 雲伺服器,只需要修改 DNS 記錄,不需要逐台修改 RustDesk 客戶端。
十三、檢查 RustDesk 端口是否正常
可以在 LuckVM 伺服器執行:
ss -lntup | grep 211
檢查 RustDesk 是否正在監聽相關端口。
再檢查 Docker:
docker ps
正常應該可以看到:
hbbs
hbbr
如果客戶端仍然無法連線,可以查看最近 100 條日誌:
docker logs --tail 100 hbbs
docker logs --tail 100 hbbr
十四、RustDesk 連線失敗時如何排查?
如果 RustDesk 客戶端無法連接自建伺服器,可以按照以下順序進行檢查:
- 確認
hbbs容器正在運行。 - 確認
hbbr容器正在運行。 - 確認 LuckVM 安全組已開放 RustDesk 所需端口。
- 確認 Ubuntu UFW 沒有阻擋相關端口。
- 確認 21116 同時開放 TCP 和 UDP。
- 確認客戶端填寫的伺服器 IP 或網域名稱正確。
- 確認客戶端 Key 與伺服器的
id_ed25519.pub一致。 - 確認 LuckVM 伺服器擁有可從公網存取的 IPv4。
- 檢查 hbbs 和 hbbr 日誌,尋找具體錯誤資訊。
十五、為什麼 Relay 中繼服務很重要?
RustDesk 並不是所有連線都會經過伺服器。
當兩台客戶端可以直接建立 P2P 連線時,RustDesk Server 主要負責設備發現和連線協調,實際遠端桌面資料不一定需要經過伺服器。
但是,如果雙方受到 NAT、防火牆或其他網路環境限制,無法建立直接連線,就可能使用 hbbr Relay 中繼服務:
電腦 A
↓
LuckVM hbbr Relay
↓
電腦 B
這種情況下,遠端桌面畫面、滑鼠操作以及檔案傳輸等資料都可能經過 LuckVM 伺服器,因此伺服器的頻寬和流量就會直接影響使用體驗。
如果只是個人使用,一台入門級 LuckVM 雲伺服器通常就可以滿足需求。如果準備讓大量使用者使用 Relay 中繼,就應該優先考慮伺服器的出口頻寬、流量限制、網路穩定性以及晚高峰期間的實際表現。
十六、RustDesk 常用管理命令
進入 RustDesk 目錄:
cd /opt/rustdesk
啟動 RustDesk:
docker compose up -d
停止 RustDesk:
docker compose down
重新啟動 RustDesk:
docker compose restart
查看服務狀態:
docker compose ps
查看 hbbs 日誌:
docker logs hbbs
查看 hbbr 日誌:
docker logs hbbr
更新 RustDesk Server:
cd /opt/rustdesk
docker compose pull
docker compose up -d
十七、總結
在 LuckVM 雲伺服器上部署 RustDesk Server,使用 Ubuntu 24.04 搭配 Docker Compose 是一種相對簡單的方式。整個部署流程主要包括安裝 Docker、建立 hbbs 和 hbbr、開放 RustDesk 所需端口、取得伺服器 Public Key,最後在 RustDesk 客戶端中配置 ID Server、Relay Server 和 Key。
對於個人遠端辦公而言,通常不需要購買高配置伺服器,一台入門級 LuckVM 雲伺服器即可運行 RustDesk Server。如果客戶端之間可以正常建立 P2P 連線,伺服器承擔的流量壓力並不大;如果大量連線需要透過 Relay 中繼,則應該更加關注公網頻寬、流量成本以及網路品質。
最後需要特別注意的是,/opt/rustdesk/data 目錄以及其中的伺服器金鑰需要妥善備份。升級 RustDesk Server 時,建議只更新 Docker 映像,不要隨意刪除持久化資料目錄,避免伺服器身份和既有客戶端配置受到影響。





