對,你沒聽錯,我們平常在 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 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 xrdp
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 主機打開新的大門!
分享文章
生成精美分享圖或複製連結,與更多人分享本文。
繼續閱讀
換條路線
從其他文章中穩定抽取
最後更新於 ,距今已過 563 天
部分內容可能已過時
評論