RustDesk 是一款開源且跨平台的遠端桌面軟體,提供類似於 TeamViewer 和 AnyDesk 的功能,讓使用者能夠輕鬆地進行遠端控制和支援。與其他商業軟體不同,RustDesk 完全開源,並允許使用者自行架設伺服器,確保資料的安全性和隱私性。透過自建伺服器,您可以完全掌控連線品質,避免公共伺服器可能帶來的延遲或安全疑慮。本教學將詳細說明如何在 Linux 環境中架設 RustDesk 的自託管伺服器,讓您能夠在內部網路或透過網際網路進行高效率且安全的遠端桌面連線。開始前,請確保伺服器上已經安裝 Docker 與 Docker Compose。
在自建 RustDesk 伺服器時,需同時架設 ID 伺服器(hbbs)和中繼伺服器(hbbr),以確保遠端連線的順暢與穩定。ID 伺服器主要負責管理客戶端的註冊與連線資訊,當被控端啟動時,會向 ID 伺服器註冊自身的 ID 和網路資訊;而當控制端嘗試連線時,則透過 ID 伺服器查詢目標被控端的連線資訊,協助建立點對點(P2P)連線。然而,在某些網路環境下,由於防火牆或 NAT(網路位址轉換)的限制,控制端與被控端可能無法直接建立連線,此時中繼伺服器便發揮作用,充當橋樑,轉發雙方的資料,確保連線的順利進行。即使透過中繼伺服器,RustDesk 仍維持端對端加密,確保資料的安全性。因此,無論是為了提升連線品質,還是滿足資料隱私需求,同時架設 ID 伺服器與中繼伺服器都是必要的步驟。
請在您的伺服器上先建立一個目錄,這邊為 /rustdesk-server
,然後建立以下內容的 docker-compose.yml:
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs -r [IP或網域]:21117 -k _
volumes:
- ./data:/root
network_mode: host
depends_on:
- hbbr
restart: always
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr -k _
volumes:
- ./data:/root
network_mode: host
restart: always
上述的 docker-compose.yml
配置檔定義了兩個服務:hbbs
和 hbbr
,分別對應 RustDesk 的 ID 伺服器和中繼伺服器。
在 hbbs
服務中,container_name
設定為 hbbs
,使用的映像為 rustdesk/rustdesk-server:latest
。command
指令指定了啟動參數,其中 -r [IP或網域]:21117
用於設定中繼伺服器的位址,-k _
表示使用預設的加密公開金鑰。volumes
將伺服器的 ./data
目錄掛載到容器內的 /root
,以儲存相關資料。network_mode
設定為 host
,使容器與伺服器共用網路堆疊。depends_on
指定此服務依賴於 hbbr
服務,確保在啟動時 hbbr
先於 hbbs
啟動。restart
設定為 always
,確保服務在意外停止後自動重啟。
在 hbbr
服務中,配置與 hbbs
類似,但 command
指令僅包含 -k _
,表示使用預設的加密公開金鑰。同樣地,volumes
、network_mode
和 restart
的設定與 hbbs
一致。
由於使用了 host
網路模式,容器將直接使用伺服器的網路堆疊,因此需要確保伺服器開放以下通訊埠:
- 21114:TCP,用於網頁控制台(僅適用於專業版)。
- 21115:TCP,用於 NAT 類型測試。
- 21116:TCP 和 UDP,分別用於 TCP 打洞和心跳 / ID 伺服器。
- 21117:TCP,用於中繼服務。
- 21118 和 21119:TCP,用於支援網頁客戶端(RustDesk Web Client)。
確保這些通訊埠在防火牆中已開放,以保證服務的正常運行。隨後請運行 docker compose up -d
,這裡將同時啟動 ID 伺服器和中繼伺服器,且是需要公開金鑰才可使用,可防止伺服器遭到他人濫用。
▲ 啟動指令如圖,這邊提供我的配置檔截圖供參考。
伺服器端完成配置與啟動後,再回到 RustDesk Client 軟體進行設定。
▲ 請點右上「≡」,再選「網路」,這邊分別要輸入 ID 伺服器、中繼伺服器、公開金鑰資訊:
在「ID 伺服器」欄位中,輸入您的 ID 伺服器位址,格式為 您的伺服器IP或域名:21116
。
在「中繼伺服器」欄位中,輸入您的中繼伺服器位址,格式為 您的伺服器IP或域名:21117
。
在「Key」欄位中,輸入您伺服器的公開金鑰資訊,以我的範例來說,公開金鑰資訊位於 /rustdesk-server/data/id_ed25519.pub
。
完成後點「套用」即可。
留言區 / Comments
萌芽論壇