使用RustDesk建立專屬自己的遠端桌面

語言: CN / TW / HK

theme: vuepress highlight: a11y-dark


因為工作原因經常需要連線公司的電腦進行遠端的程式碼除錯和資料處理,用過很多的遠端桌面工具,但是奈何遠端連線工具都是要收費的,不付費就只能忍受辣眼睛的畫質,特別是疫情隔離期間對遠端桌面的需求極具增加。最終在白嫖過無數遠端連線工具後終於找到了開源且可以自己搭建的遠端桌面程式 RustDesk

1、簡介

開源的虛擬與遠端桌面基礎架構。遠端桌面軟體,開箱即用,無需任何配置。您完全掌控資料,不用擔心安全問題。您可以使用我們的註冊/中繼伺服器,或者自建,亦或者開發您的版本。

如果只是使用RustDesk軟體且不需要自己搭建伺服器的話,可以直接在官網下載對應的系統版本即可使用,不過由於共享使用作者的伺服器畫質和響應速度可能存在問題。此處建議有自己雲伺服器的同學自己搭建中繼伺服器,畫質和響應速度會得到大幅度提升。

軟體官網:RustDesk

2、搭建中繼伺服器

本部落格基於:CentOS Linux release 7.6.1810搭建,並採用pm2 啟動的方式進行管理,docker搭建方式沒有嘗試成功,歡迎搭建成功的同學一起交流。

自建中繼伺服器基本要求:

硬體要求很低,最低配置的雲伺服器就可以了,CPU和記憶體要求都是最小的。關於網路大小,如果TCP打洞直連失敗,就要耗費中繼流量,一箇中繼連線的流量在30k-3M每秒之間(1920x1080螢幕),取決於清晰度設定和畫面變化。如果只是辦公需求,平均在100K/s。

2.1 下載中繼伺服器軟體

2.1.1 進入RustDeck官網下載軟體

官網下載地址:rustdesk-server,找的與自己系統相匹配的軟體包,如圖2-1所示

| 圖2-1 中繼軟體下載 | | ---------------------------- | | image-20230221154911018.png|

補充一些關於Linux系統中軟體區分的資料

2.1.2 上傳到自己的伺服器

① 在 /usr/local/lib 目錄下建立資料夾 rustdesk

mkdir rustdesk

② 使用FTP軟體上傳軟體包到 /usr/local/lib/rustdesk 目錄下

或者使用 wget 命令直接下載

wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.7-1/rustdesk-server-linux-amd64.zip

③ 解壓軟體包

unzip rustdesk-server-linux-amd64.zip

此時軟體包以及可以使用,但是建議安裝pm2進行服務的啟停和管理

啟動命令

./hbbs -r <hbbr執行所在主機的地址[:port]>  ./hbbr

2.2 安裝nodejs

① 在 /usr/local/lib 目錄下建立資料夾 nodejs

mkdir nodejs

② 下載nodejs,nodejs官網使用FTP軟體上傳到目錄 /usr/local/lib/nodejs

或者使用 wget 命令直接下載

wget https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64.tar.xz

注意:需要安裝nodejs16+版本

③ 解壓檔案,配置軟連線

# 解壓檔案  tar -xvf node-v16.14.0-linux-x64.tar.xz  # 配置軟連線  ln -s /usr/local/lib/nodejs/node-v16.14.0-linux-x64/bin/node /usr/local/bin  ln -s /usr/local/lib/nodejs/node-v16.14.0-linux-x64/bin/npm /usr/local/bin

④ 檢查是否配置成功

node -v  npm -v

2.3 安裝pm2包並啟動服務

① 使用npm命令安裝pm2

npm install -g pm2

② 使用pm2 執行 hbbs/hbbr

進入中繼軟體所在目錄執行以下命令

pm2 start hbbs -- -r <your-relay-server-ip[:port]>  pm2 start hbbr

③ 檢視服務執行情況

pm2 list

hhbs的-r引數不是必須的,他只是方便你不用在客戶端指定中繼伺服器,如果是預設21117埠,可以不填port。客戶端指定的中繼伺服器優先順序高於這個。

官網指出填不填都可以,但是處於保險起見最好加上引數;

2.4 配置防火牆

找到你伺服器的防火牆或安全組配置,開放以下埠,如圖2-2所示;

  • TCP(21115, 21116, 21117, 21118, 21119)
  • UDP(21116)

| 圖2-2 防火牆配置 | | ---------------------------- | | image-20230221162705683.png |

務必在防火牆開啟這幾個埠, 請注意21116同時要開啟TCP和UDP

  • hbbs 監聽21115(tcp), 21116(tcp/udp), 21118(tcp);
  • hbbr 監聽21117(tcp), 21119(tcp);
  • 21115是hbbs用作NAT型別測試;
  • 21116/UDP是hbbs用作ID註冊與心跳服務;
  • 21116/TCP是hbbs用作TCP打洞與連線服務;
  • 21117是hbbr用作中繼服務, 21118和21119是為了支援網頁客戶端;
  • 如果您不需要網頁客戶端(21118,21119)支援,對應埠可以不開;

3、配置使用

3.1 不使用金鑰連線

將第二步配置好的伺服器地址,填寫到RustDesk軟體的ID/中繼伺服器配置,配置完成後即可進行遠端連線。

① 開啟RustDesk軟體,找到選單選項,如圖3-1所示;

| 圖 3-1 配置中繼伺服器 | | ---------------------------- | | image-20230221164120077.png |

② 配置ID伺服器和中繼伺服器地址,如圖3-2所示

| 圖 3-2 ID伺服器地址配置 | | ---------------------------- | |image-20230221165617329.png |

注意:

① 修改IP地址為你自己的IP地址!!!

② 連線端和被連線端都需要新增中繼伺服器配置!!!

3.2 使用金鑰連結

上述中配置完成後已經可以進行正常的遠端桌面操作和訪問,但是因為通訊之間沒有進行加密,難免會被惡意攻擊和盜取資料,因此建議中繼地址加入強制金鑰訪問。

① 重啟 hbbs/hbbr 服務強制開啟加密連線

pm2 start hbbs -r <relay-server-ip[:port]> -k _  pm2 start hbbr -k _

② 找到金鑰檔案

金鑰檔案配置在中繼軟體目錄下的 id_ed25519.pub,使用命令檢視金鑰

cat ./id_ed25519.pub

③ 配置金鑰

配置同圖3-2,在key選項處新增的金鑰資訊即可實現加密連線;

【參考資料】

官方搭建文件:https://rustdesk.com/do