請參考: Linux開源免費的遠端桌面列表
RustDesk是一款開源免費的遠端桌面軟體,提供電腦遠端控制電腦、手機遠端控制電腦、電腦遠端控制手機、手機控制手機等多種連線方式。
連線時可以全程自架,也可以用免費公共伺服器連線。資料傳輸經過點對點加密,安全性不用太擔心。
RustDesk的客戶端還是跨平台的,支援Linux、Windows、macOS、Android、iOS各大系統,未來還會推出網頁版。
1. RustDesk功能介紹#
RustDesk功能特色如下:
自由軟體,RustDesk為市面上少見的開源遠端桌面軟體,使用上無任何限制,不需要註冊帳號就能用,且RustDesk的授權條款允許商業用途。使用上有任何問題可以到Github issues與大夥一起討論。
操作簡單,RustDesk設計上跟閉源軟體TeamViewer一樣簡單易用,輸入對方電腦的ID和密碼便可以連線。RustDesk跟VNC、RDP不一樣,它比較像TeamViewer、Splashtop、Anydesk這類整合式的解決方案,開箱即用,使用者不太需要煩惱底層的系統運作知識便可以使用。
連線後二台電腦能夠透過RustDesk共享剪貼簿與上傳檔案。兩邊用戶更是可以開啟對話框傳送訊息,適合用於遠端指導用戶操作電腦。
對開發者來說很方便的TCP通道功能,將本機服務的通訊埠轉發到遠端電腦,用來測試伺服器連線。
即時錄製所有連入連線,檢查電腦使用情況,監視是否有他人操作電腦的痕跡。
RustDesk能傳輸遠端音效到本機,且支援GPU硬體加速,讓串流時的畫面更為流暢。不過如果你想玩遊戲建議還是用Moonlight + Sunshine比較好。
關於資安問題,RustDesk是自由軟體,原始碼放在Github可供大眾檢驗。預設連線會走公共中繼伺服器,並透過點對點加密連線。若你覺得公共伺服器服務不夠穩定的,可以自行搞P2P連線,或者自架一個RustDesk的中繼伺服器。
2. 如何安裝RustDesk#
電腦版#
到RustDesk的官方Github,翻到Latest標籤處,點選Show all assets,按照你的作業系統下載RustDesk安裝檔。RustDesk主程式同時包含控制端與被控端的功能。
Windows下載.msi安裝。
macOS下載.dmg檔之後點兩下安裝。
Linux系統,RustDesk支援Ubuntu、Fedora、Arch系發行版。安裝RustDesk時候建議使用原生套件,Flatpak版RustDesk只能當控制端,無法當被控端。
下載對應Linux發行版的安裝包,用指令安裝。請注意架構,大部分電腦應該要下載的是
x86_64
的RustDesk安裝包。
# 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-*.AppImage
RustDesk支援X11與Wayland桌面,Wayland的話請確保你的Linux系統有安裝
XDG Desktop Portal
和PipeWire
套件以便共享螢幕。關於無人值守存取,X11桌面連線的時候不需要遠端確認,而Wayland桌面的話需要手動透過XDG Desktop Portal選取一次螢幕,之後Rustdesk會記住那個螢幕(如果需要選取其他螢幕,在Rustdesk設定裡面清除記住的選項)。你可以把RustDesk加入到Linux開機自動啟動程式。注意RustDesk必須要登入Linux桌面才可以啟動遠端連線。
sudo systemctl enable rustdesk
如果RustDesk無法透過Systemd自動啟動,可能要改用XDG Autostart的方式來自動啟動:
cp /usr/share/applications/rustdesk.desktop ~/.config/autostart/
手機版#
Android可以到Github或者F-droid下載。前者更新速度比較快。
iOS到App Store下載。
網頁版#
RustDesk網頁版,只有客戶端功能,尚在測試中。
3. RustDesk使用方式#
使用例1:遠端連線到電腦桌面#
在電腦上開啟執行RustDesk,允許其通過防火牆。畫面左邊會顯示一組隨機的ID和密碼。必須確認下方有無顯示「已連上RustDesk網路」
在另一部電腦開啟RustDesk,輸入遠端電腦的ID
輸入密碼,或者在要連線的遠端電腦螢幕上按下暫時同意連線
之後便能進行操作,實測播放影片,畫面和音訊延遲還算OK,並且可以使用選擇用遠端電腦的輸入法輸入,或者使用客戶端的輸入法。
RustDesk連線時會嘗試讓二個裝置P2P,失敗的話才會走公共中繼伺服器傳輸訊號。雖然說能連線,但是公共中繼伺服器延遲高,可以的話建議自行搞P2P連線(見下文)
使用例2:手機遠端控制手機#
手機不只可以用RustDesk控制電腦,還可以讓其他裝置控制手機。
你可以Android控制Android,或是iOS控制Android。但因為iOS的系統限制,iOS無法成為被控端,只能投影畫面。
詳細作法參見:透過Rustdesk實現手機控制手機
使用例3:連線到headless伺服器#
即使伺服器沒有接上顯示器,RustDesk照樣能夠連線。
RustDesk提供了CLI界面,允許透過指令編輯設定。
以樹莓派伺服器為例,參見:用RustDesk連線到headless的Linux伺服器
4. 使用P2P連線#
RustDesk連線時會嘗試讓二個裝置P2P,失敗的話才會走公共中繼伺服器傳輸訊號。
雖然可以連線,但是公共中繼伺服器要比P2P延遲高些。
要想改善延遲,除了自己架個中繼伺服器外,你還可以想辦法讓二個RustDesk裝置P2P,這樣的話連線就不會走中繼伺服器了。比方說讓二個裝置位於同一個內網,讓二部裝置P2P。
但若是二部裝置位於不同網域呢?請參見:RustDesk + Tailscale內網穿透,IP直連
5. 自架RustDesk中繼伺服器#
參考自Self-host :: Documentation for RustDesk
架設中繼伺服器(relay server),讓二台電腦連線走自己的伺服器,即可改善Rustdesk的回應速度。首先您需要一台Linux伺服器,x86或ARM架構都可以,這邊以x86為主。
登入Linux伺服器,安裝Docker。
新建docker-compose
vim docker-compose.yml
- 填入以下內容
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
- 啟動服務
sudo docker compose up -d
- 開放防火牆通訊埠
sudo ufw allow 21115:21119/tcp
sudo ufw allow 8000/tcp
sudo ufw allow 21116/udp
- 接著開啟RustDesk客戶端,點選設定 → 網路 → ID/中繼伺服器。填寫第一個欄位,輸入
<伺服器IP>:21116
,剩下讓RustDesk自己判斷,再按下確認。
6. 改善RustDesk延遲問題#
RustDesk公共伺服器品質不穩,所以要自行解決連線問題。請使用上述的「P2P連線」或者「自架中繼伺服器」方案。
如果還是不行的話,嘗試:
在遠端電腦的RustDesk點選設定 → 一般,啟用硬體解碼(記得遠端電腦需要安裝Intel、AMD、Nvidia顯示卡的驅動)。
調整RustDesk客戶端的連線設定,畫質改成「回應速度優先」。或是點「自訂模式」,調低位元率和FPS。
修改編碼器:RustDesk連線的時候會自動依照網速調整畫質,嘗試使用不同的編碼器,改善頻寬佔用。其中H.264是最不耗費硬體資源的編碼器,但是頻寬佔用高。如果條件允許的話請嘗試H.265或AV1編碼器。
降低遠端桌面的解析度也是個解法,譬如4K修改為1080p以下。RustDesk目前沒有這個功能,需要使用者手動修改。