簡介#
RustDesk
是一款開箱即用的開源免費的全平台遠程桌面軟體,包括 MacOS
、Windows
和 Android
的客戶端支援。它可以替代類似於 向日葵遠程桌面
、ToDesk
等遠程桌面服務,這可以讓你完全掌控資料,不用擔心安全問題。你可以選擇使用官方的註冊 / 中繼伺服器,也可以自建伺服器,甚至基於官方程式碼開發自己的版本。
部署服務#
環境準備#
-
伺服器需要有安裝 Docker 和 DockerCompose 環境
-
建立持久化目錄及 compose 描述檔
# 建立資料夾
mkdir -p /home/rustdesk-server
cd /home/rustdesk-server
mkdir hbbr
mkdir hbbs
# 建立描述檔,並貼上序號3的描述檔內容
vim docker-compose.yml
version: '3'
networks:
rustdesk-net:
external: false
services:
hbbs:
container_name: rustdesk-hbbs
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
image: rustdesk/rustdesk-server:latest
# 請把 www.xxxaaa.cn:21117 修改為自己的域名
# 如果您禁止沒有key的使用者建立非加密連線,請在運行hbbs和hbbr的時候添加-k _參數
command: hbbs -r www.xxxaaa.cn:21117 -k _
volumes:
- ./hbbs:/root
networks:
- rustdesk-net
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: rustdesk-hbbr
ports:
- 21117:21117
- 21119:21119
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./hbbr:/root
networks:
- rustdesk-net
restart: unless-stopped
運行容器#
docker-compose 常用命令:
# 運行容器
docker-compose up -d
# 停止容器
docker-compose stop
# 啟動容器
docker-compose start
# 重啟容器
docker-compose restart
# 下線(刪除)容器,刪除容器不會導致你的資料遺失,你的資料庫保存在了當前目錄下的data資料夾內,請妥善保管該目錄
docker-compose down
查看伺服器公鑰#
在上面的 docker-compose
檔案中,已經宣告開啟了強制金鑰加密認證,所有需要連線的裝置都需要提供正確的公鑰才能正常連線到伺服器。
下面是 docker-compose 檔案所在資料夾的目錄結構:
.
├── docker-compose.yml
├── hbbr
│ ├── id_ed25519
│ └── id_ed25519.pub
└── hbbs
├── db_v2.sqlite3
├── db_v2.sqlite3-shm
├── db_v2.sqlite3-wal
├── id_ed25519
└── id_ed25519.pub
容器啟動後會自動生成公鑰和私鑰,我們需要複製 hbbs
目錄下的 id_ed25519.pub
檔案裡面的字串,這個就是我們連線到伺服器的憑證。
如需更換金鑰和公鑰,只需將 hbbs
資料夾下面的 id_ed25519.pub
和 id_ed25519
兩個檔案刪掉然後重啟容器就可以自動重新生成。
配置客戶端#
普通配置#
注意:被控端只需要填寫輸入伺服器 IP 地址即可,控制端需要填入金鑰,才可以發起連線。
我們可以在客戶端的設定介面,輸入伺服器 IP 地址,和金鑰檔案,儲存後,就可以看到客戶端會提示就緒。
自動配置#
只有在控制端發起連線時才需要驗證金鑰。
這樣我們就可以把被控端發給任何人,而不需要擔心金鑰洩露,以及其他未授權使用者發起連線。
設定好後,我們將被控端發給需要我們遠程的人,不需要他做任何設定,只需要他打開軟體,將軟體的 ID 和密碼發給我們,我們就可以遠程其裝置了。
如果需要無人值守,也就是開機自動運行遠程軟體,以方便我們遠程連線,我們直接打開被控端軟體,點擊安裝就可以將軟體和配置一起安裝到裝置上。
如果你想要讓客戶端不用手動輸入中繼地址和金鑰,直接雙擊運行就可以用的話,可以將通過修改客戶端檔案名的方式來實現。
我們將客戶端改名:
被控端
host=伺服器IP,key=錯誤的金鑰內容.exe
例如:host=129.129.33.8,key=111.exe
控制端
host=伺服器IP,key=正確的金鑰內容.exe
例如:host=129.129.33.8,key=4uZtPIYe4y344NP3IVc5SxRzKeiNn2lfen4tEY=.exe
附註#
端口說明#
組件 | 功能 | 使用的端口 |
---|---|---|
hbbs | RustDesk ID 註冊伺服器 | 21115 (tcp):用作 NAT 類型測試 21116 (udp):用作 ID 註冊與心跳服務 21116 (tcp):用作 TCP 打洞與連線服務 |
hbbr | RustDesk 中繼伺服器 | 21117 (tcp):用作中繼服務 |