差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

兩邊的前次修訂版 前次修改
下次修改
前次修改
tech:ubuntu_xrdp [2021/10/02 19:50] – [關閉 Screen Saver] jonathantech:ubuntu_xrdp [2026/03/23 12:29] (目前版本) – [Ubuntu 安裝遠端桌面(XRDP + XFCE)] jonathan
行 1: 行 1:
-====== Ubuntu 安裝可讓 Windows 遠端桌面登入的 xrdp ====== +====== Ubuntu 安裝遠端桌面(XRDP + XFCE) ====== 
-  * 因為建立一個 VM 來測試 Ubuntu Desktop 的功能, 想看看有沒有比 VNC 效能好一點的服務, 後來找到 xrdp 可以測試看看 +  * 因為建立一個 VM 來測試 Ubuntu Server 遠端桌面(XWindow)功能, 想看看有沒有比 VNC 效能好一點的服務, 後來找到 xrdp 可以測試看看 
-  * 安裝環境 : Ubuntu-18.04.1-Desktop +  * 安裝環境 : Ubuntu-24.04 Server 版
  
 ===== 安裝方式 ===== ===== 安裝方式 =====
-  * 安裝 xfce4 與 xrdp <cli> +==== Step 1:安裝桌面環境與 xrdp ==== 
-sudo apt install xfce4 xrdp+  * <cli> 
 +sudo apt update && sudo apt upgrade -y 
 + 
 +# 安裝輕量桌面 XFCE 
 +sudo apt install -y xfce4 xfce4-goodies 
 + 
 +# 安裝 xrdp 與必要套件 
 +sudo apt install -y xrdp dbus-x11
 </cli> </cli>
-  * 配置登入環境 <cli>+  * dbus-x11 是關鍵套件,沒有它 xfce4 無法建立 dbus session,會導致登入後立刻跳出。 
 + 
 +==== Step 2:停用 LightDM(Server 版關鍵步驟)與關閉 Wayland(24.04 關鍵修正)==== 
 +  * 安裝 xfce4 時會自動安裝 LightDM,它會與 xrdp 的 session 產生衝突,必須停用<cli> 
 +sudo systemctl disable lightdm 
 +sudo systemctl stop lightdm 
 +</cli> 
 +  * 停用後主機本機螢幕將無桌面,但 RDP 遠端連線完全正常,Server 環境這是正確做法。 
 + 
 +  * 停用 Wayland,強制使用 X11<cli> 
 +sudo sed -i 's/#WaylandEnable=false/WaylandEnable=false/' /etc/gdm3/custom.conf 
 +</cli> 
 +<note> 
 +**如果安裝無桌面版 Exp. Server 不會有 GDM3, 就不需要關閉 Wayland** 
 + 
 +執行就會出現<cli> 
 +$ sudo sed -i 's/#WaylandEnable=false/WaylandEnable=false/' /etc/gdm3/custom.conf 
 +sed: can't read /etc/gdm3/custom.conf: No such file or directory 
 +</cli> 
 +</note> 
 + 
 +==== Step 3:設定 xrdp 使用 XFCE ==== 
 +  * 為目前使用者設定 xfce4 為預設 session<cli>
 echo xfce4-session > ~/.xsession echo xfce4-session > ~/.xsession
-sudo vi /etc/xrdp/startwm.sh +chmod +x ~/.xsession 
-</cli><file> +</cli> 
-:+  * 直接替換 startwm.sh,讓 xrdp 乾淨地啟動 xfce4,避免繼承殘留的舊 dbus 環境:<cli> 
 +# 先備份 
 +sudo cp /etc/xrdp/startwm.sh /etc/xrdp/startwm.sh.bak 
 + 
 +# 寫入新內容 
 +sudo bash -c 'cat /etc/xrdp/startwm.sh << EOF 
 +#!/bin/sh 
 +export XDG_SESSION_TYPE=x11 
 +export XDG_SESSION_DESKTOP=xfce 
 +export XDG_CURRENT_DESKTOP=XFCE 
 + 
 +unset DBUS_SESSION_BUS_ADDRESS 
 +unset XDG_RUNTIME_DIR 
 if test -r /etc/profile; then if test -r /etc/profile; then
-        . /etc/profile+    . /etc/profile
 fi fi
 +if test -r ~/.profile; then
 +    . ~/.profile
 +fi
 +
 +exec startxfce4
 +EOF'
  
-startxfce4 +sudo chmod +x /etc/xrdp/startwm.sh
-test -x /etc/X11/Xsession && exec /etc/X11/Xsession +
-exec /bin/sh /etc/X11/Xsession +
-</file> +
-  * 啟動 xrdp 服務 <cli> +
-sudo service xrdp restart+
 </cli> </cli>
-  服務正常運行 <cli> + 
-netstat -na | grep 3389 +==== Step 4:修正 polkit 認證問題(解決黑畫面 / 認證彈窗)==== 
-</cli><cli> +  建立 polkit 規則,避免連線後跳出證視窗或黑畫面<cli> 
-: +sudo mkdir -/etc/polkit-1/localauthority/50-local.d/ 
-tcp6            0 :::3389                 :::*                    LISTEN      +sudo bash -c 'cat /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla << EOF 
-:+[Allow Colord all Users] 
 +Identity=unix-user:* 
 +Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile 
 +ResultAny=yes 
 +ResultInactive=yes 
 +ResultActive=yes 
 +EOF'
 </cli> </cli>
  
-===== 使用方式 ===== +==== Step 5:加入 ssl-cert 群組(解決 TLS 憑證問題)==== 
-  - 使用 windows 遠端桌面連上 Ubuntu IP Exp. 192.168.11.55 \\ {{:tech:2018081201.png?400|}} +  * <cli> 
-  登入 Ubuntu 內的帳號密碼 \\  {{:tech:2018081202.png?400|}} +sudo adduser xrdp ssl-cert 
-  - {{:tech:2018081203.png?600}}+</cli>
  
-<WRAP info> +==== Step 6:設定開機自動啟動(解決重開機問題)==== 
-  * 如果需要透過背景執行 xwin 的相關程式, 就需要找到 DISPLAY 的 ID, 方法其實很簡單, 直接在 rdp 底下開啟 terminal 輸入 echo $DISPLAY 就可以查到 \\ {{:tech:image_25.png?600|}} +  * 啟用並設定開機自動啟動<cli> 
-  * 之後可以使用 ssh 連入主機端執行一個 xwin 程式進行驗證 Exp. <code sh>DISPLAY=:10.0 xterm &</code> \\ {{:tech:image_26.png?600|}} +sudo systemctl enable xrdp 
-</WRAP> +sudo systemctl enable xrdp-sesman
- +
-===== 無法呈現中文的處理程序 ===== +
-  * 安裝中文字型相關套件<cli> +
-sudo apt-get install  language-pack-zh-han* +
-sudo apt install $(check-language-support) +
-sudo apt-get install font-manager+
 </cli> </cli>
-  * 更改預設為中文環境<cli> +  * 啟動服務<cli> 
-sudo vi /etc/default/locale +sudo systemctl restart xrdp
-</cli><file> +
-LANG="zh_TW.UTF-8" +
-LANGUAGE="zh_TW:zh:en_US:en" +
-</file><cli> +
-sudo vi /etc/environment +
-</cli><file> +
-LANG="zh_TW.UTF-8" +
-LANGUAGE="zh_TW:zh" +
-LC_NUMERIC="zh_TW" +
-LC_TIME="zh_TW" +
-LC_MONETARY="zh_TW" +
-LC_PAPER="zh_TW" +
-LC_NAME="zh_TW" +
-LC_ADDRESS="zh_TW" +
-LC_TELEPHONE="zh_TW" +
-LC_MEASUREMENT="zh_TW" +
-LC_IDENTIFICATION="zh_TW" +
-LC_ALL="zh_TW.UTF-8" +
-</file><cli>  +
-sudo dpkg-reconfigure locales +
-</cli>選擇 zh_TW.UTF-8 UTF-8<cli> +
-sudo fc-cache -fv+
 </cli> </cli>
-  * 重新開設定生效 <cli>+  * 確認服務正常運行<cli> 
 +sudo systemctl status xrdp 
 +</cli> 
 + 
 +==== Step 7:主防火牆設定 ==== 
 +  * 開放 RDP port(若有使用 ufw)<cli> 
 +sudo ufw allow 3389/tcp 
 +sudo ufw reload 
 +sudo ufw status 
 +</cli> 
 + 
 +==== Step 8:驗證 ==== 
 +  * 驗證開機自動啟動<cli> 
 +# 重開機後確認 xrdp 是否自動啟動
 sudo reboot sudo reboot
 +
 +# 重開機後 SSH 進去確認
 +sudo systemctl is-enabled xrdp   # 應顯示 "enabled"
 +sudo systemctl is-active xrdp    # 應顯示 "active"
 +
 +# 確認 LightDM 已停用
 +sudo systemctl is-enabled lightdm  # 應顯示 disabled
 +
 +# 確認 port 3389 正在監聽
 +sudo ss -tlnp | grep 3389
 </cli> </cli>
-  * 重新連入後就可以看到中文訊息 {{:tech:2020120601.png?600|}} 
  
-===== 關閉 Screen Saver ===== +===== FAQ ===== 
-  - 需要先透過遠端桌面登入 (產生 X Server) Exp. DISPLAY=:10.0  +==== 1. 常見出現 Xorg 輸入帳號密碼後, 登入畫面一直卡在藍畫面或跳開的問題 ===
-  - 執行 xcreensaver-demo 來產生 ~/.xscreensaver 設定檔<cli>DISPLAY=:10.0 xscreensaver-demo</cli>使用 CTRL-C 中斷就會產生 +  - 登入後立刻跳出缺少 : dbus-x11 或 startwm.sh 設定錯誤 -Step 1 + Step 3 
-  - 修改 ~/.xscreensaver 設定檔的 mode 預設為 RANDOM <cli> +  藍畫面/黑畫面 : LightDM 與 xrdp 衝突 -Step 2 
-vi ~/.xscreensaver</cli><file+  跳出認證視窗 : polkit 規則缺失 -> Step 4 
-+  - 重開機無法連線 : 未設定 enable -> Step 6 
-mode:         off +  - 出現 /etc/gdm3/custom.conf 不存在 訊息 : Server 版無 GDM3 -> 執行 Step 2 停用 LightDM 
-: +   
-</file+==== 2. 現在來安裝注音輸入法(IBus + 新酷音)==== 
-  可以再次執行 xcreensaver-demo 來確認已經關閉 Screen Saver 設定, <cli>DISPLAY=:10.0 xscreensaver-demo</cli> 一樣使用 CTRL-C 中斷後就會關閉畫面+  * 在 RDP 桌面開啟 Terminal,執行:<cli> 
 +# 安裝 IBus 與注音輸入法(新酷音 chewing) 
 +sudo apt install -y ibus ibus-chewing 
 + 
 +# 設定 IBus 為預設輸入法框架 
 +im-config -n ibus 
 + 
 +# 將 IBus 加入啟動環境 
 +echo 'export GTK_IM_MODULE=ibus 
 +export XMODIFIERS=@im=ibus 
 +export QT_IM_MODULE=ibus 
 +ibus-daemon -drx' >> ~/.profile 
 +然後啟動 IBus 設定: 
 +ibus-daemon -drx & 
 +ibus-setup 
 +在 IBus 設定視窗中: 
 + 
 +點 Input Method 分頁 
 +點 Add → 搜尋 Chinese → 選 Chewing(新酷音) 
 +確認後關閉 
 +</cli> 
 + 
 +<note
 +**如果 Input Method 找不到 Chonese** 
 + 
 +可以重新啟動 ibus 後, 再次進入 ibus-setup <cli> 
 +ibus restart 
 +ibus-setup 
 +</cli> 
 + 
 +</note> 
 + 
 +  * 最後登出再重新 RDP 連線即可使用 
 +  * 切換輸入法快捷鍵預設為 CapsLock 可以透過設定改成 Shift。 
 ===== 參考網址 ===== ===== 參考網址 =====
   * http://honglung.pixnet.net/blog/post/167257893-windows-%E9%81%A0%E7%AB%AF%E6%A1%8C%E9%9D%A2%E9%80%A3%E7%B7%9A%E5%88%B0-ubuntu-16.04   * http://honglung.pixnet.net/blog/post/167257893-windows-%E9%81%A0%E7%AB%AF%E6%A1%8C%E9%9D%A2%E9%80%A3%E7%B7%9A%E5%88%B0-ubuntu-16.04
  • tech/ubuntu_xrdp.1633175421.txt.gz
  • 上一次變更: 2021/10/02 19:50
  • jonathan