對,你沒聽錯,我們平常在 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" > ~/.xsessionD=/usr/share/plasma:/usr/local/share:/usr/share:/var/lib/snapd/desktopC=/etc/xdg/xdg-plasma:/etc/xdgC=${C}:/usr/share/kubuntu-default-settings/kf5-settingscat <<EOF > ~/.xsessionrcexport XDG_SESSION_DESKTOP=KDEexport 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 3389WARNING基於安全考慮,極度不建議直接用
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 numberini_version=1
; fork a new process for each incoming connectionfork=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> aboveuse_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 xrdpNOTE如果你有啟用防火牆的話,記得更新一下允許新的端口。否則無法連線喔~
Step 3: 連線至主機
現在,我們可以先測試一下 Xrdp 是否正常運作。
-
如連線至 Windows 般打開遠端桌面 (Remote Desktop) 並填寫主機 IP 或域名,然後按「連接」 (Connect)

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

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

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

假若無法連上主機,或是連接後在某部份出現異常的話,該怎樣辦?沒關係。請繼續看下去
疑難排解
無法識別主機
大多數屬於網絡問題,請檢查
-
Xrdp 是否已啟用並正常運行
-
防火牆是否已允許端口 (Port)
輸入憑據後按登入後即時閃退
這是一個在任何DE也最常遇到的問題,但解決方法也很簡單
先在 terminal 中輸入以下指令
sudo service xrdp stop然後編輯 Xrdp 啟動腳本
sudo nano /etc/xrdp/startwm.sh把腳本內的以下幾行
test -x /etc/X11/Xsession && exec /etc/X11/Xsessionexec /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 kwinkillall kwin_x11#(@obsolete)kwrapper kwin -replace &kwrapper5 kwin_x11 --replace &按 Ctrl + X ,輸入 y / yes 並按 Enter 儲存
最後輸入以下指令來重新啟動 Xrdp 便可
sudo service xrdp startKDE 內沒有桌面,只顯示黑畫面
這問題在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 itkquitapp5 plasmashellkstart5 plasmashell按 Ctrl + X ,輸入 y / yes 並按 Enter 儲存
最後輸入以下指令來重新啟動 Xrdp 便可
sudo service xrdp start結語
想不到 Linux 還有這樣的連接方式啊,博主也是最近才知道…
看到這裏,想必各位應該 GET 到一些新技能了吧
不過在這裏提醒大家,在享受 Xrdp 帶來的便利時,也請謹記做好網絡保安。
現時遠端連接騙局極為普遍,切忌讓其他人士肆意存取你的主機。相信沒人願意成為下一位被騙的受害者吧 XD
希望大家設置成功,為你的 Linux 主機打開新的大門!
如果這篇文章對你有幫助,歡迎分享給更多人!
部分資訊可能已經過時






