請參考: Linux開源免費的遠端桌面列表
適用版本:GNOME 46以上、Ubuntu 24.04以上、Fedora 40以上
Linux有許多RDP協定的開源實作,其中較知名的有FreeRDP和xRDP,讓用戶能透過Windows的RDP客戶端連線到Linux電腦。xRDP比較常聽人提到,不過它比較適合headlesss的伺服器使用,設定複雜。
但是你知道嗎,GNOME 42以後就有內建「遠端桌面」,讓使用者可以輕鬆從系統選單直接開啟遠端桌面功能,而不用手動打指令!還能播放遠端音訊、共享剪貼簿呢!
GNOME遠端桌面功能類似x11VNC,可讓使用者接續使用離開電腦前的工作階段,而非開一個新的桌面工作階段。
有趣的是,除了遠端桌面之外,GNOME Remote Desktop還能新增虛擬顯示器輸出(RDP screen share mode),讓你擁有第二個顯示器,可投影到其他電腦上當作延伸桌面,例如將平板當作電腦的無線顯示器。
技術細節:GNOME遠端桌面(gnome-remote-desktop)為GNOME Vino的後繼者,支援VNC與RDP二種遠端桌面協定當作後端。RDP部份使用的是FreeRDP的實作,而非xRDP,因為後者只支援X11。於是乎GNOME遠端桌面可在X11或Wayland環境運作。還有GNOME遠端桌面是透過PipeWire傳輸音訊的,舊版則是PulseAudio。
1. 啟用GNOME遠端桌面#
你的Linux電腦必須安裝GNOME桌面才可以使用這個功能,且電腦必須接著顯示器。
GNOME遠端桌面選項的位置可能會隨著GNOME版本更新而變更,如果找不到請搜尋「遠端桌面」或「桌面分享」。
GNOME 46開啟GNOME設定 → 系統 → 遠端桌面 → 桌面分享,將以下二個選項打勾。不勾第二個的話就是只能檢視。
下面就會列出啟用的通訊埠,還有連線時的帳號密碼。
你可能需要開放對應防火牆通訊埠:
sudo ufw allow 3390
sudo ufw reload
- 接著用
ip addr
指令取得Linux的區域IP。
2. 安裝RDP連線客戶端#
讓要連線的電腦處在同一個網域下。
連線協定選RDP,再輸入Linux的IP:通訊埠
就可以了。遠端桌面工作階段開始的時候,GNOME右上角會出現畫面分享圖示。
電腦: Remmina或 Microsoft Remote Desktop
手機: RealVNC Viewer或 Microsoft Remote Desktop
網頁版: Apache Guacamole
3. 讓GNOME鎖定的時候也可以連線#
遠端桌面重開機後會自動啟動,不過GNOME螢幕鎖定的情況下是無法連入遠端桌面的。
請安裝 Extension Manager,再從裡面安裝 Allow Locked Remote Desktop擴充功能解決。
或者你可以在GNOME系統設定關閉自動鎖定螢幕。
4. 從外網連接到GNOME桌面#
如果不方便取得公共IP,不妨使用 內網穿透軟體。
這樣你的電腦就能從外部網路存取GNOME桌面。
5. 透過指令啟動GNOME遠端桌面#
GNOME遠端桌面可以使用grdctl
指令啟用。
- 查看狀態
grdctl status
- 啟用RDP遠端桌面
grdctl rdp enable
除此之外,headless的Linux電腦也可以純靠指令啟用RDP遠端桌面,請見這篇: How to configure + connect to the new headless gnome-remote-desktop service?
6. GNOME RDP建立虛擬顯示器#
此功能會生成一個虛擬顯示器,成為GNOME的延伸桌面。僅限Wayland工作階段使用。
- 執行以下指令,設定
org.gnome.desktop.remote-desktop.rdp screen-share-mode
數值為extend
:
gsettings set org.gnome.desktop.remote-desktop.rdp screen-share-mode extend
開啟平板的VNC客戶端連線,連線的時候看到的會是虛擬顯示器的畫面,而非電腦GNOME的主畫面。並且GNOME設定界面會多出第二個顯示器。
這個似乎是實驗性功能,如果GPU沒有正常驅動的話無法調整第二個顯示器的解析度。
要還原預設設定的話,就是改回
mirror-primary
:
gsettings set org.gnome.desktop.remote-desktop.rdp screen-share-mode mirror-primary