快轉到主要內容

Rustdesk使用教學:開源免費遠端桌面,可自架

Linux系統 Self-hosting自架 RustDesk Remote Desktop Linux Windows MacOS
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

RustDesk是一款開源免費的遠端桌面軟體,提供電腦遠端控制電腦、手機遠端控制電腦、電腦遠端控制手機、手機控制手機等多種連線方式。

連線時可以全程自架,也可以用免費公共伺服器連線。資料傳輸經過點對點加密,安全性不用太擔心。

Rustdesk的客戶端還是跨平台的,支援Linux/Windows/macOS/Android/iOS。

1. Rustdesk跟其他遠端桌面差在哪裡呢?
#

Rustdesk跟VNC、RDP這種方案差在哪裡呢?Rustdesk的畫面傳輸效率略好於VNC,整體來說比較像Teamviewer、Splashtop、Anydesk那樣整合式的解決方案,而且開箱即用,使用者不太需要煩惱底層的系統運作知識便可以使用。

Rustdesk還有個最大優點:自由軟體,使用上無任何限制,不需要註冊帳號。

Rustdesk為市面上少見的開源遠端桌面軟體,設計上跟閉源軟體Teamviewer一樣簡單易用,輸入對方電腦的ID和密碼便可以連線。

連線後可遠端輸入文字,二台電腦共享剪貼簿,還能傳輸檔案。

Rustdesk能傳輸遠端音效到本機,支援GPU硬體加速(不過如果你想玩遊戲建議還是用 Moonlight + Sunshine比較好)

預設連線會走公共伺服器,若你覺得公共伺服器服務不夠穩定的也可以自己架一個RustDesk的中繼伺服器。

2. 如何安裝Rustdesk
#

2.1. 電腦版
#

Rustdesk的官方Github,按照你的作業系統下載Rustdesk安裝檔。Rustdesk主程式同時包含控制端與被控端的功能。

  1. 以Linux來說,Rustdesk支援Ubuntu/Fedora/Arch系的系統,下載對應發行版的安裝檔後用指令安裝:
# Ubuntu
sudo apt install ./rustdesk-*.deb

# Fedora
sudo dnf install ./rustdesk-*.rpm

# Arch Linux (或者從AUR裝rustdesk-bin)
sudo pacman -U ./rustdesk-*.pkg.tar.zst

# 如果沒有你系統的套件,就下載AppImage版
./rustdesk-1.2.3-x86_64.AppImage
  1. Flatpak版Rustdesk只能當控制端,無法當被控端,故安裝Rustdesk建議仍是用原生套件(deb/rpm/AppImage)為主。

  2. Rustdesk最新版支援X11與Wayland工作階段,Wayland的話請確保你的系統有安裝XDG PortalPipeWire套件以便共享螢幕。若要使用無人值守存取的話還是得使用X11工作階段。

  3. 你可以把RustDesk加入到Linux開機自動啟動程式:

cp /usr/share/applications/rustdesk.desktop ~/.config/autostart

2.2. 手機版
#

Android可以到 F-droid Github下載。

iOS到 App Store下載

3. Rustdesk使用方式
#

使用範例1:Linux遠端連線到Windows桌面
#

  1. 在Windows電腦執行Rustdesk,允許其通過防火牆。在螢幕左邊會顯示本機的ID和密碼

  2. 在Linux電腦開啟Rustdesk,輸入遠端Windows電腦的ID

  3. 輸入密碼,或者在要連線的電腦螢幕上按下暫時同意連線。

  4. 之後便能進行操作,實測播放影片,畫面和音訊還算OK,並且可以使用遠端電腦的輸入法(微軟新注音)輸入,而非從Linux這邊傳送文字。

另外,如果是從手機的Rustdesk APP遠端連線到電腦,似乎只能使用手機輸入法的樣子。

使用範例2:手機遠端控制手機
#

手機不只可以用Rustdesk控制電腦,還可以跑遠端桌面讓其他裝置。

你可以Android控制Android,或是iOS控制Android。但因為iOS的系統限制,iOS無法成為被控端,只能傳輸畫面。

詳細作法參見 透過Rustdesk實現手機控制手機

4. 改善RustDesk延遲,使用P2P連線
#

RustDesk連線時會嘗試讓二個裝置P2P,失敗的話才會走公共中繼伺服器傳輸訊號。

雖然可以連線,但是中繼伺服器要比P2P延遲高些。

要想改善延遲,除了自己架個中繼伺服器外,你還可以想辦法讓二個RustDesk裝置P2P,這樣的話連線就不會走中繼伺服器了。比方說讓二個裝置位於同一個Wifi下,讓二部裝置P2P。

但若是二部裝置位於不同網域呢?

  1. 在二部電腦安裝 內網穿透軟體

  2. 開啟Rustdesk連線設定,到設定 → 安全,勾選直接網路存取

  3. 防火牆開放2118通訊埠

sudo ufw allow 21118
  1. 在那之後正常使用ID和密碼連線。

5. 自架Rustdesk中繼伺服器
#

參見 Self-host :: Documentation for RustDesk

架設中繼(relay)伺服器,讓二台電腦連線走自己的伺服器,即可改善Rustdesk的回應速度。首先您需要一台Linux伺服器,x86或ARM架構都可以,這邊以x86為主。

  1. 在Linux伺服器安裝 Docker

  2. 新建docker-compose

vim docker-compose.yml
  1. 填入以下內容
version: '3'

networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    ports:
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21118:21118
    image: rustdesk/rustdesk-server:latest
    # 在這裡填入您的伺服器IP或是域名
    command: hbbs -r example.com:21117
    volumes:
      - ./data:/root
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    ports:
      - 21117:21117
      - 21119:21119
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./data:/root
    networks:
      - rustdesk-net
    restart: unless-stopped
  1. 啟動服務
sudo docker compose up -d
  1. 開放防火牆通訊埠
ufw allow 21115:21119/tcp
ufw allow 8000/tcp
ufw allow 21116/udp
sudo ufw enable
  1. 接著開啟Rustdesk客戶端,點選設定 → 網路 → ID/中繼伺服器。填寫第一個欄位,輸入<伺服器IP>:21116,剩下讓Rustdesk自己判斷,再按下確認。

相關文章

Weylus使用教學,讓平板當電腦第二螢幕,支援無線手寫筆輸入
Linux系統 Linux好用軟體 Remote Desktop Linux Windows MacOS
用Stash APP整理電腦的A片與色圖收藏吧,還可以串流影片、給圖片上標籤
Linux系統 Self-hosting自架 Media Server Windows Linux
Sunshine:Linux版Moonlight教學,自架免費雲端串流遊戲服務+遠端桌面
Linux系統 Self-hosting自架 Cloud Gaming Remote Desktop Steam Linux

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。