2012/09/12

Published 9月 12, 2012 by with 0 comment

Linux 遠端桌面(XRDP)

遠端桌面(RDP)相對於 VNC 的好處應該是:


1.      連線的過程中有加密


2.      可設定登入時的解析度


3.      方便切換輸入法


4.      操作起來似乎比 VNC 還流暢


現在遠端桌面可不再是 Windows 的專利,在 Linux 上要做到遠端桌面的存取,如果純粹只要有 Viewer 的功能可安裝rdesktop,如果要同時有 Viewer Server 的功能請安裝xrdp,以下介紹 xrdp


其實 xrdp 是一個 Linux 遠端桌面的中繼程式,為何說 xrdp 中繼程式?!因為它還是借用了 VNC 的模組 (libvnc.so),並且 xrdp 除了可以讓你用遠端桌面連線存取 Linux 桌面之外,還能透過它來登入其它 Windows 的遠端桌面、VNC Server,以及任何也有安裝 xrdp 的主機。並且是允許你用不同帳號進行多重登入,這在 Windows 的系統只有 Windows Server 才支援。


所以說,安裝了 xrdp 等於是安裝了:


1.      RDP Server (允許多重登入)


2.      RDP Viewer


3.      XRDP Viewer


4.      VNC Viewer


 


安裝 xrdp


1. 安裝 xrdp 前請先確定系統已經安裝了 gcc, pam-devel, openssl-devel,可使用下列指令安裝:


yum install gcc pam-devel openssl-devel


2.  http://xrdp.sf.net 下載 xrdp 的原始檔並安裝:


cd /usr/local/src


wget http://jaist.dl.sourceforge.net/sourceforge/xrdp/xrdp- 0.4.1 .tar.gz


tar -xzvf xrdp- 0.4.1 .tar.gz


cd xrdp- 0.4.1


make


make install


3. 編輯 /etc/rc.d/rc.local,加入:


/usr/local/xrdp/xrdp_control.sh start


PS.若使用rpm安裝,xrdp_control.sh此檔案會找不到…


 


啟動 xrdp


啟動 xrdp 指令:


/usr/local/xrdp/xrdp_control.sh start


 


xrdp 的設定檔


相關設定檔放在 “/etc/xrdp/”,比較重要的是 “/etc/xrdp/sesman.ini” 這個檔案,在 [Globals] 中的這一行:


ListenAddress=127.0.0.1


表示只允許從本機連結 RDP Server,如果要從別的主機進行操作 (配合登入 xrdp “sesman-any” 選項),可將 “127.0.0.1″ 改成 “ 0.0.0 .0″


登入 xrdp


啟動 xrdp 之後,你的 Linux 主機基本上已經具備了接受遠端桌面連線的功能,其 Port 3389,請用 Windows 遠端桌面連線進行存取。





連線後,首先會看到 xrdp 的登入視窗,你可以選擇:


1.      sesman-Xvnc: 使用 xrdp 內建的 libvnc.so 模組登入本機,本機不需啟動 VNC Server


2.      console: 登入本機的 VNC Server


3.      vnc-any: 登入其它已經啟動 VNC Server 的主機。


4.      sesman-any:登入其它有安裝 xrdp 的主機。


5.      rpd-any: 登入其它已經啟動遠端桌面 (RDP Server) Windows 電腦或主機。


6.      sesman-X11rdp: 這個項目我沒有測試成功,從字面上的意思來看,應該是連結本機端由 X Server 提供的 RDP,但目前 Linux 的桌面應該還沒有具備這樣的功能!


 


桌面環境


“sesman-Xvnc” 選項登入 Linux 桌面後,預設是使用 KDE 桌面,但其操作介面是英文的,這些設定都與 “/usr/local/xrdp/startwm.sh” 這個指令檔有關。


如果要改成中文環境,請編輯 /usr/local/xrdp/startwm.sh,在程式的第二行加入:


export LANG=zh_TW.UTF-8


這樣就可以了。


 


參考資料:http://punz.pixnet.net/blog/post/24772651


Read More