RustDesk · Docker · Cloudflare Tunnel · Self-Hosted · Remote Desktop
專案概述
本專案以社群版映像檔lejianwen/rustdesk-server-s6 建構自託管遠端桌面基礎設施。該映像以 s6-overlay 把 hbbs(信號伺服器)、hbbr(中繼伺服器)與 Go 語言實作的 Web API 管理後台打包成單一容器,配合一個 cloudflared 容器共享網路,Web Console 透過 Cloudflare Tunnel(Zero Trust)對外曝露,RustDesk 用戶端則直連主機 21115-21117 埠。無裝置數量限制,MIT 授權免費使用。
核心功能
- 單一容器整合 hbbs + hbbr + Web API(不需分別管理三個 container)
- Web Console 透過 Cloudflare Tunnel 曝露,主機不對 Web Console 開放入站埠
- RustDesk 用戶端直連走 21115-21117,不繞 Tunnel(延遲最低)
- 使用者管理、裝置管理、地址簿/群組、登入日誌、連線日誌、OIDC/LDAP 登入、Web Client、強制登入(
MUST_LOGIN=Y) - 無裝置數量限制,MIT 授權
配置比較
專案架構
兩個容器(rustdesk-s6、cloudflared)共享同一網路命名空間(network_mode: service:rustdesk),cloudflared 直接存取 localhost:21114,不需額外 expose 埠號給外部。
快速開始
1
複製 repo 並設定環境變數
.env 中填入兩個必要值:CLOUDFLARE_TUNNEL_TOKEN(從 Cloudflare Zero Trust Dashboard 建立 Tunnel 取得)與 RUSTDESK_API_JWT_KEY(自訂隨機字串)。2
啟動服務
3
取得伺服器公鑰
4
首次登入 Web Console
瀏覽器開 登入後立刻修改密碼。
https://rustdesk-console.example.com(你在 Cloudflare Tunnel 設的 hostname)。預設帳號 admin,初始密碼從容器日誌取得:5
設定 RustDesk 用戶端
ID/中繼伺服器只填域名,不加
http:// 或 port。注意事項
實際應用面
實驗室成員遠端存取實驗室工作站,不依賴商業遠端桌面服務,連線記錄留在自管伺服器。管理員透過 Web Console 管理使用者帳號與裝置,強制登入模式(MUST_LOGIN=Y)確保未登入帳號無法建立連線。
相關連結
- GitHub:felimet/self-host-rustdesk-server
- lejianwen/rustdesk-server(社群 server fork):github.com/lejianwen/rustdesk-server
- lejianwen/rustdesk-api(Web API 後端):github.com/lejianwen/rustdesk-api
- RustDesk 官方開源 server:github.com/rustdesk/rustdesk-server