遠端桌面協定(RDP, Remote Desktop Protocol)顧名思義是專門拿來做遠端桌面連線的協定。相比於同樣用於遠端桌面的VNC(Virtual Network Computing),RDP使用起來更為方便、簡潔、順暢。
在繼續本篇文章之前,您必須了解到,自行透過RDP來實現遠端桌面功能的方式並無法像TeamViewer或是AnyDesk等商業的遠端桌面軟體那樣,有第三方伺服器來協助不在同一個區域網錄下的兩裝置連線。換句話說,如果您只是想要在同一個區域網路下進行遠端桌面連線,RDP是一個很好的選擇;但如果您想要在網際網路進行遠端桌面連線,TeamViewer或是AnyDesk等軟體才是好的選擇。透過網際網路使用RDP進行遠端桌面連線也不是不行,但您必須自行確保被連線的裝置是可以經由網際網路連入,且擁有足夠的安全性。
啟動RDP伺服器,讓電腦能被其它裝置連入
Linux GNOME 42+
Linux的GNOME桌面環境在42版之後自帶了RDP遠端桌面連線的功能,在設定
(Settings
)中的分享
(Sharing
),可以看到遠端桌面
(Remote Desktop
)項目。
開啟遠端桌面和遠端遙控,並設定使用者名稱和密碼(可與Linux使用者不同)。
如此一來就可以允許RDP客戶端的連入,瀏覽並操控當前使用者的畫面。要注意的是,如果當前使用者進入螢幕鎖定的狀態,RDP就無法連線。
Linux X11
如果您的Linux不是使用GNOME 42+桌面環境,可以先參考以下文章查看您的桌面環境是使用X11還是Wayland。
如果是X11,可以安裝xrdp
套件來架設RDP伺服器。
基於Debian的Linux發行版可以用以下指令來安裝xrdp
:
紅帽系的Linux發行版可以用以下指令來安裝xrdp
:
以下指令可以查看xrdp服務有無被成功執行(有無監聽TCP的3389
連接埠)。
ss
指令可以顯示出Socket相關的資訊。-l
參數可以只顯示正在監聽中的連線。若使用ss
指令時都沒給任何參數的話,會忽略掉監聽中的連線。-t
參數可以只顯示TCP連線。-n
參數可以讓連接埠數字直接被輸出,而不是用一個名稱代替。-p
參數可以顯示佔用連線的行程。
若沒有,可以執行以下指令來立刻啟用,並在之後的開機都自動啟用:
接著要將RDP要使用的桌面環境的session寫進~/.xsession
檔案中。例如要使用Cinnamon桌面環境的話,可以執行以下指令:
Windows
以Windows 10來說,在設定
→系統
可以找到遠端桌面
分頁。
開啟遠端桌面
。
設定遠端桌面連線時可以登入的使用者帳戶。
使用RDP客戶端
Linux
Remmina是Linux上強大的遠端桌面客戶端軟體,除了支援RDP之外,也支援VNC。
基於Debian的Linux發行版可以用以下指令來安裝remmina
:
紅帽系的Linux發行版可以用以下指令來安裝remmina
:
Remmina的用法很簡單,只要填入IP,輸入登入的帳號密碼,就可以連線。
不過用這樣的方式來連線,會以最小頻寬為訴求,犧牲掉很多功能。但如果是用建立連線設定檔
的方式,除了可以儲存連線設定外,還有一些進階設定可以調整,可以將畫面品質(Quality
)調到最大(調到最大連線到Windows才會顯示桌布)。也可以將聲音輸出模式(Audio Output Mode
)調到本地(Local
),來接收遠端裝置發出的聲音;或者是調到遠端(Remote
),來讓遠端裝置本身發出聲音。
Windows
Windows內建的遠端桌面連線
即是RDP客戶端。它的用法很簡單,只要填入IP和要登入的使用者名稱,以及密碼,就可以連線。
RDP + SSH Tunnel
若要將RDP暴露在網際網路上,最好是把3389
連接埠對外用防火牆擋起來,只透過SSH Tunnel來連線。有關於SSH Tunnel的說明可以參考這篇文章: