用Windows的遠端桌面操作Linux——xrdp與VNC Server搭配
用Windows的遠端桌面操作Linux——xrdp與VNC Server搭配
在之前我介紹過用VNC Server做到遠端連線的功能,但老實說,這VNC遠端桌面實在是不太好用,不僅操作上總是會有延遲的感覺,更讓人頭痛的是,VNC Server免費版本是沒有加密功能,很容易遭人竊取!
在網路上找來找去,總算找到一個解決方案:xrdp,開放原始碼的遠端桌面通訊協定(remote desktop protocol)伺服器。
使用xrdp,你就可以用Windows上的「遠端桌面連線」來看到Linux上的桌面喔!
網路上很多人都是用Ubuntu的apt-get來安裝xrdp,但這對RedHat家族的CentOS來說可就沒有apt-get這個方便的工具了。因此這一篇則是記錄著在CentOS 4.3上安裝設定xrdp與vnc server的方法,可惜最後我無法開機自動啟動VNC Server,這部份就得手動用SSH來開啟了。
1. 安裝xrdp
CentOS要安裝xrdp可以用簡單的rpm來安裝。請到DAG: xrdp RPM packages for Red Hat, CentOS and Fedora裡面下載xrdp-0.4.0-1.rh9.rf.i386.rpm(注意到自己OS的版本)。
執行rpm安裝指令:
# rpm -ivh xrdp-0.4.0-1.rh9.rf.i386.rpm
這個rpm檔案安裝完畢之後,大部分設定檔是擺在「/etc/xrdp/」之中,在本文裡面我們並沒有特別要去變動的設定,在這邊就只稍微提一下而已。
2. 啟動xrdp,並設定開機自動啟動
xrdp啟動指令如下:
# /etc/rc.d/init.d/xrdp_control.sh start
最後的「start」改用「stop」跟「restart」則會是停止、重新啟動的指令。
到這裡為止,你已經可以用遠端桌面來連到該伺服器了,但還不能順利執行遠端桌面喔。
為了讓伺服器在開機時就自動啟用xrdp,我們得要設定/etc/rc.local。編輯/etc/rc.local:
# vim /etc/rc.local
在最後加入以下指令
/etc/rc.d/init.d/xrdp_control.sh start
這樣開機就會自動啟動xrdp了。
p.s. 我後來在CentOS 5 Final上面安裝rpm檔案,卻會套件相依性的錯誤。用yum install那些套件之後,在安裝rpm,卻也會有錯誤訊息,而且到最後找不到xrdp_control.sh的位置。總之就是安裝失敗,真是讓人遺憾。
3. 用VNC Server來登入遠端桌面
xrdp只是一個通訊協定,真正進行遠端桌面的還得依賴其他軟體,在此我們使用的是VNC Server。
VNC Server的啟動與設定方法我在之前VNCserver初始設定與自動啟動裡面有敘述過,這邊再簡單把作法帶過:
- 以root修改vncservers啟動設定:
# vim /etc/sysconfig/vncservers
如果你要以dspace帳號登入,登入桌面為1024x768,那麼加入以下設定:VNCSERVERS="1:dspace"
VNCSERVERARGS[1]="-geometry 800x600" - 以root啟動vncserver
# /etc/init.d/vncserver start
- 切換到dspace帳號
# su dspace
執行vncpasswd來設定密碼#vncpasswd
修改~/.vnc/xstartup (如果沒有這個檔案,那代表之前2個步驟沒有完成)
Password: //輸入 VNC 密碼
Verify: //再輸入一次 VNC 密碼以確認# vim ~/.vnc/xstartup
該檔案的內容如下,請將SESSION_MANAGER與exec /etc/X11/xinit/xinitrc開頭的#註解拿掉,其他行則加上註解。參考如下:#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
#[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
#[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
#xsetroot -solid grey
#vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm & - 回到root
# exit
重新啟動VNC Server# /etc/init.d/vncserver restart
修改/etc/rc.local,把啟動的命令加進去# vim /etc/rc.local
在最後加入以下指令/etc/init.d/vncserver start
這樣就大功告成了。而VNC Server預設是會被防火牆擋住,所以只能靠xrdp進到本機端來連線。
根據之前在CentOS 5 Final安裝VNC Server的經驗,照理說在/etc/rc.local增加「service vncserver start」的指令應該就能夠開機自動啟動VNC Server,但嘗試多種設定方法之後依然失敗。VNC Server有在執行中,但並沒辦法開啟遠端桌面。
因此最後我的解決方案是,在需要用遠端桌面的時候,先以SSH登入Linux「service vncserver start」,再用遠端桌面登入Linux。
4. 用Windows的遠端桌面連到Linux
「遠端桌面連線」通常在「開始→所有程式(程式集)→附屬應用程式→通訊→遠端桌面連線」可以找到。
請在「電腦」的地方輸入該伺服器的IP或Domain Name,按下「連線」。
使用者名稱跟密碼隨便輸入,按下「確定」。
Module選擇「console」(本機操作),密碼則輸入在設定vncpasswd時的密碼。按下ok。
如果沒有出現錯誤訊息的話,那就可以順利進入到Linux的桌面囉!
如果出現error - connect problem,那得要用SSH登入Linux將vncserver restart囉。
這一篇從昨天晚上寫到今天下午,而且還不算是很完美的解決方案,有點讓人灰心啊。
(more...)
Comments