mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
1273 字
3 分鐘
什麼? Linux 也能用RDP?
2025-02-24

對,你沒聽錯,我們平常在 Windows 上用的遠端桌面在 Linux 原來也能通過一些插件實現。到底是什麼插件如此強大呢?這裏便不多賣關子了

今天就和大家聊聊如何在 Linux 安裝和配置 Xrdp 服務器,以及一些可能會遇到的問題和解決方法

 

什麼是 Xrdp?#

顧名思義,Xrdp 是一個微軟 (Microsoft) 遠端桌面協定(RDP)的開源實現,至今已有超過20多年歷史。能夠提供一個在功能還是兼容性方面和RDP一致的遠端桌面體驗。

它允許你透過圖形介面控制遠端系統。你可以透過RDP協定登入遠端機器,並且創建一個真實的桌面會話,整體上就像你登入自己的電腦一樣。

 

Step 1: 安裝#

桌面環境#

大部份Linux主機通常並沒有預先安裝桌面環境。因此在繼續前,我們需要先給主機安裝一個桌面環境 (Desktop Environment,俗稱 DE),用作 Xrdp 的後端

通常像 Ubuntu Debian 這類 distro 的 Source repo 中有幾個 DE 可選,例如 XFCE 、 GNOME 等。博主這邊打算安裝 KDE Plasma

sudo apt-get install kde-plasma-desktop

完成後便可以開始裝 Xrdp 了

Xrdp#

我們首先在 terminal 中輸入以下指令

sudo apt-get install xrdp

接着分別更改 /etc/xrdp/xrdp.ini

sudo sed -e 's/^new_cursors=true/new_cursors=false/g' \
-i /etc/xrdp/xrdp.ini

~/.xsession 裏的參數,像醬

echo "/usr/bin/startplasma-x11" > ~/.xsession
D=/usr/share/plasma:/usr/local/share:/usr/share:/var/lib/snapd/desktop
C=/etc/xdg/xdg-plasma:/etc/xdg
C=${C}:/usr/share/kubuntu-default-settings/kf5-settings
cat <<EOF > ~/.xsessionrc
export XDG_SESSION_DESKTOP=KDE
export XDG_DATA_DIRS=${D}
export XDG_CONFIG_DIRS=${C}
EOF

如果你使用的版本是 Ubuntu 20 或以上,便需要提供憑證存取權給 Xrdp 使用者以確保 Xrdp 能夠正常運作

sudo adduser xrdp ssl-cert

然後在 systemctl 中啟用 xrdp,讓其在我們每次去開機時自動啟動

sudo systemctl enable xrdp

如果你有啟用防火牆的話,可以允許 Xrdp 來自某個 IP 位置,或某個 IP 範圍的訪問 (CIDR),這邊博主以 ufw 為例

sudo ufw allow from <YOUR IP OR IP RANGE IN CIDR> to any port 3389
WARNING

基於安全考慮,極度不建議直接用 sudo ufw allow 3389 來允許從所有地方訪問

最後輸入以下指令來重新啟動 Xrdp,讓變更生效

sudo systemctl restart xrdp

這樣便完成 Xrdp 的基本安裝了

 

Optional 2: 進階設定#

更改默認端口號 (Port)#

我們先打開 /etc/xrdp/xrdp.ini

sudo nano /etc/xrdp/xrdp.ini

然後在裏面找到 port=3389

[Globals]
; xrdp.ini file version number
ini_version=1
; fork a new process for each incoming connection
fork=true
; ports to listen on, number alone means listen on all interfaces
; 0.0.0.0 or :: if ipv6 is configured
; space between multiple occurrences
; ALL specified interfaces must be UP when xrdp starts, otherwise xrdp will fail to start
;
; Examples:
; port=3389
; port=unix://./tmp/xrdp.socket
; port=tcp://.:3389 127.0.0.1:3389
; port=tcp://:3389 *:3389
; port=tcp://<any ipv4 format addr>:3389 192.168.1.1:3389
; port=tcp6://.:3389 ::1:3389
; port=tcp6://:3389 *:3389
; port=tcp6://{<any ipv6 format addr>}:3389 {FC00:0:0:0:0:0:0:1}:3389
; port=vsock://<cid>:<port>
port=3389
; 'port' above should be connected to with vsock instead of tcp
; use this only with number alone in port above
; prefer use vsock://<cid>:<port> above
use_vsock=false
.
.
.

並把它更改為你想要且未被佔用的端口

; Examples:
; port=3389
; port=unix://./tmp/xrdp.socket
; port=tcp://.:3389 127.0.0.1:3389
; port=tcp://:3389 *:3389
; port=tcp://<any ipv4 format addr>:3389 192.168.1.1:3389
; port=tcp6://.:3389 ::1:3389
; port=tcp6://:3389 *:3389
; port=tcp6://{<any ipv6 format addr>}:3389 {FC00:0:0:0:0:0:0:1}:3389
; port=vsock://<cid>:<port>
port=< YOUR PORT>

Ctrl + X ,輸入 y / yes 並按 Enter 儲存

最後輸入以下指令來重新啟動 Xrdp,讓變更生效

sudo systemctl restart xrdp
NOTE

如果你有啟用防火牆的話,記得更新一下允許新的端口。否則無法連線喔~

 

Step 3: 連線至主機#

現在,我們可以先測試一下 Xrdp 是否正常運作。

  1. 如連線至 Windows 般打開遠端桌面 (Remote Desktop) 並填寫主機 IP 或域名,然後按「連接」 (Connect) Connecting to Linux Xrdp 1

  2. 假如出現憑證警告,按「是」 (Yes) 繼續 Connecting to Linux Xrdp 2

  3. 輸入目標主機的用戶名稱 (Username) 和密碼 (Password) ,完成後請按 Connecting to Linux Xrdp 3

  4. 倘若沒問題的話,恭喜你!你已經成功安裝和設置 Xrdp 了,盡情享受吧! Connecting to Linux Xrdp 4

假若無法連上主機,或是連接後在某部份出現異常的話,該怎樣辦?沒關係。請繼續看下去

疑難排解#

無法識別主機#

大多數屬於網絡問題,請檢查

  • Xrdp 是否已啟用並正常運行

  • 防火牆是否已允許端口 (Port)

輸入憑據後按登入後即時閃退#

這是一個在任何DE也最常遇到的問題,但解決方法也很簡單

先在 terminal 中輸入以下指令

sudo service xrdp stop

然後編輯 Xrdp 啟動腳本

sudo nano /etc/xrdp/startwm.sh

把腳本內的以下幾行

test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /etc/X11/Xsession

更改為

#(@obsolete)startxfce4
/usr/bin/startplasma-x11

Ctrl + X ,輸入 y / yes 並按 Enter 儲存

最後輸入以下指令來重新啟動 Xrdp 便可

sudo service xrdp start

在 KDE 中無法移動或調整視窗大小#

我們在 terminal 中輸入以下指令

sudo service xrdp stop

並編輯 Xrdp 啟動腳本

sudo nano /etc/xrdp/startwm.sh

在腳本底下新增以下內容

#(@obsolete)killall kwin
killall kwin_x11
#(@obsolete)kwrapper kwin -replace &
kwrapper5 kwin_x11 --replace &

Ctrl + X ,輸入 y / yes 並按 Enter 儲存

最後輸入以下指令來重新啟動 Xrdp 便可

sudo service xrdp start

KDE 內沒有桌面,只顯示黑畫面#

這問題在KDE中也算常見,其解決方法並不複雜

先同樣地在 terminal 中輸入以下指令

sudo service xrdp stop

並編輯 Xrdp 啟動腳本

sudo nano /etc/xrdp/startwm.sh

在腳本底下新增以下內容

#(@Obsolete)killall plasma-desktop
#(@Obsolete)kstart plasma-desktop
#(@Obsolete)killall plasmashell #to stop it
#(@Obsolete)kstart plasmashell #to restart it
kquitapp5 plasmashell
kstart5 plasmashell

Ctrl + X ,輸入 y / yes 並按 Enter 儲存

最後輸入以下指令來重新啟動 Xrdp 便可

sudo service xrdp start

結語#

想不到 Linux 還有這樣的連接方式啊,博主也是最近才知道…

看到這裏,想必各位應該 GET 到一些新技能了吧

不過在這裏提醒大家,在享受 Xrdp 帶來的便利時,也請謹記做好網絡保安。

現時遠端連接騙局極為普遍,切忌讓其他人士肆意存取你的主機。相信沒人願意成為下一位被騙的受害者吧 XD

希望大家設置成功,為你的 Linux 主機打開新的大門!

分享

如果這篇文章對你有幫助,歡迎分享給更多人!

什麼? Linux 也能用RDP?
https://moe.lolicon.io/posts/tech-posts/linux-xrdp/
作者
ホシノ ゆき
發布於
2025-02-24
授權條款
CC BY-NC-SA 4.0

部分資訊可能已經過時

目錄