首頁 網域註冊 支援中心 消息中心 關於我們

如何在 LuckVM 雲伺服器上部署 RustDesk 伺服器?Ubuntu 24.04 完整教學

如果需要搭建自己的遠端桌面服務,RustDesk 是一個相當實用的開源方案。透過將 RustDesk Server 部署到自己的 LuckVM 雲伺服器上,可以自行管理 ID 伺服器與 Relay 中繼服務,不需要完全依賴第三方遠端桌面平台,同時也能更方便地控制伺服器和網路環境。

本文以 LuckVM 雲伺服器 + Ubuntu 24.04 + Docker Compose 為例,從 Docker 安裝、RustDesk Server 部署、伺服器防火牆設定,到取得 Server Key、配置 RustDesk 客戶端以及常見問題排查,完整介紹如何建立一套自己的 RustDesk 遠端桌面伺服器。

一、部署 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 自建服務,通常需要同時運行 hbbshbbr

三、登入 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

正常情況下,可以看到 hbbshbbr 兩個服務正在運行。

查看 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 客戶端無法連接自建伺服器,可以按照以下順序進行檢查:

  1. 確認 hbbs 容器正在運行。
  2. 確認 hbbr 容器正在運行。
  3. 確認 LuckVM 安全組已開放 RustDesk 所需端口。
  4. 確認 Ubuntu UFW 沒有阻擋相關端口。
  5. 確認 21116 同時開放 TCP 和 UDP。
  6. 確認客戶端填寫的伺服器 IP 或網域名稱正確。
  7. 確認客戶端 Key 與伺服器的 id_ed25519.pub 一致。
  8. 確認 LuckVM 伺服器擁有可從公網存取的 IPv4。
  9. 檢查 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 映像,不要隨意刪除持久化資料目錄,避免伺服器身份和既有客戶端配置受到影響。