我是基於ChatGPT-turbo-3.5實現的AI助手,在此網站上負責整理和概括文章
這篇文章介紹了如何在Linux上安裝和配置Xrdp服務器,以實現類似Windows遠端桌面的功能。Xrdp是一個開源的微軟遠端桌面協定的實現,能夠提供和RDP一致的遠端桌面體驗。文章分步解釋了安裝桌面環境、安裝Xrdp、進階設定、連線至主機和疑難排解等步驟,並提供了在KDE桌面環境下常見問題的解決方法。透過Xrdp,用戶可以在Linux上實現遠端桌面控制,提升工作效率和便利性。文章強調了在使用Xrdp時要注意網絡安全,避免遠端連接騙局,並祝願讀者成功設置並享受Linux主機的新功能。
對,你沒聽錯,我們平常在 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 |
基於安全考慮,極度不建議直接用 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 |
如果你有啟用防火牆的話,記得更新一下允許新的端口。否則無法連線喔~
# Step 3: 連線至主機
現在,我們可以先測試一下 Xrdp 是否正常運作。
- 如連線至 Windows 般打開遠端桌面 (Remote Desktop) 並填寫主機 IP 或域名,然後按「連接」 (Connect)

- 假如出現憑證警告,按「是」 (Yes) 繼續

- 輸入目標主機的用戶名稱 (Username) 和密碼 (Password) ,完成後請按 Login

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

假若無法連上主機,或是連接後在某部份出現異常的話,該怎樣辦?沒關係。請繼續看下去
# 疑難排解
# 無法識別主機
大多數屬於網絡問題,請檢查
- 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 主機打開新的大門!