2021年8月17日 星期二

tips on installation of xrdp for remote desktop connection to linux machines

大家都知道,Linux桌面跑的是X Windows視窗系統。微軟Windows如果想要連上Linux桌面,一種作法是本身主機消耗硬碟,裝上X Windows伺服軟體VcXsrv,甚至加上微軟應用商店的免費Linux作業系統,例如Ubuntu,此作法步驟可詳Lainme's Blog。另一種作法是遠方Linux主機安裝tightvnc server及xrdp套件,微軟Windows只要沿用原來的遠端桌面連線(mstsc.exe),即可使用rdp協定,連上Linux桌面。後者作法,剪貼簿可用,聲音則待個別測試。以下將依據Linux作業系統為 Ubuntu 或 CentOS,分別介紹其安裝訣竅。

A. Ubuntu 安裝 xrdp 作法

-- 先去除舊套件干擾 sudo apt-get remove xrdp tightvncserver # 只刪執行檔 sudo apt-get purge xrdp tightvncserver # 刪除執行檔及相關組態檔 sudo dpkg --purge xrdp tightvncserver # 刪除執行檔及相關組態檔 sudo dpkg -S /etc/xrdp/startwm.sh # 查檔案所屬套件 -- 安裝tightvncserver及xrdp套件 sudo apt-get install tightvncserver # 一定要先安裝此視窗套件 sudo apt-get install xrdp # 然後安裝此傳輸套件,才會順利偵測運用視窗套件 sudo vi /etc/xrdp/startwm.sh # 加入管理視窗指令 xfce4-session # 若未安裝,可使用apt-get install xfce4-session -- 啟動服務 sudo service xrdp status # 詢問xrdp服務狀態 sudo service xrdp start # 啟動xrdp服務 註: 若連線過程,顯示詢息,缺rsakeys.ini金鑰,可如下產生金鑰 cd /etc/xrdp sudo xrdp-keygen xrdp # generate /etc/xrdp/rsakeys.ini -- 測試連線 sudo netstat -tulpn # 觀看是否3389及3350連接埠有監聽服務 -- rdp連線過程,適用於 Ubuntu 16.04.6 LTS (1) xrdp (3389) # 選擇 sesman-Xvnc 模式 (2) xrdp-sesman (3350,root) (3) xrdp-chansrv # 執行 /etc/xrdp/startwm.sh 及 xfce4-session (4) Xvnc (59xx) -- rdp連線過程,適用於 Ubuntu 18.04.5 LTS (1) xrdp (3389) # 選擇 Xorg 模式 (2) xrdp-sesman (3350,root) (3) xrdp-chansrv # 執行 /etc/xrdp/startwm.sh 及 xfce4-session (4) Xorg 註: xrdp安裝apt-get內建版本即可,不須安裝 https://github.com/neutrinolabs/xrdp.git

B. CentOS 安裝 xrdp 作法

-- 安裝tightvnc-server及xrdp套件 sudo yum erase xrdp tightvnc tightvnc-server sudo yum install tightvnc-server # 要先裝tightvnc-server sudo yum install xrdp # 再裝xrdp -- sudo repoquery -l xrdp # 查套件安裝哪些檔案 sudo rpm -ql /usr/bin/Xvnc # 查檔案所屬套件 -- cat /etc/xrdp/startwm.sh # 確認系統裝有如下任一種視窗管理程式 SESSIONS="gnome-session blackbox fluxbox startxfce4 startkde xterm" -- 啟動服務 sudo service xrdp status # 詢問xrdp服務狀態 sudo service xrdp start # 啟動xrdp服務 -- 測試連線 sudo netstat -antup | grep xrdp # 觀看是否3389及3350連接埠有監聽服務 註: 若連線過程,顯示訊息,缺權限,可如下給予selinux權限 sudo chcon --type=bin_t /usr/sbin/xrdp sudo chcon --type=bin_t /usr/sbin/xrdp-sesman -- rdp連線過程,適用於 CentOS 6.10 (1) xrdp (3389) # 選擇 sesman-Xvnc 模式 (2) xrdp-sesman (3350,root) (3) xrdp-chansrv # 執行 /etc/xrdp/startwm.sh 及 gnome-session (4) Xvnc (59xx) 註: 若為舊 CentOS-6,因自2020/11/30已不再提供維護更新,故須更新repo來源,如下: sudo rm CentOS-SCLo-scl* sudo curl https://www.getpagespeed.com/files/centos6-eol.repo --output /etc/yum.repos.d/CentOS-Base.repo sudo curl https://www.getpagespeed.com/files/centos6-epel-eol.repo --output /etc/yum.repos.d/epel.repocurl \ https://www.getpagespeed.com/files/centos6-epel-eol.repo --output /etc/yum.repos.d/epel.repo sudo yum update # 更新到6.10版 參考: 阿吉的部落格: 使用 xrdp 遠端登入 Linux (Gentoo)

1 則留言:

Unknown 提到...

Ubuntu 16.04 正常登入畫面
Login to xrdp

Module: sesman-Xvnc
username:
password
[OK] [Cancel] [Help]

Connection Log
connecting to sesman ip 127.0.0.1 port 3350
ssesman connect ok
sending login info to session manager, please wait...
xrdp_mm process login_response: login successful for display
started connecting
conencting to 127.0.0.1 5910
tcp connected
security level is 2 (1=none, 2=standard)
password ok
sending share flag
receiving server init
receiving pixel format
receiving name length
receiving name
sending peixel format
sending encodings
sending framebuffer update request
sending cursor
connection complete, connected ok