Linux 上的遠端桌面中繼程式: xrdp (v0.4.2)

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

  1. 連線的過程中有加密
  2. 可設定登入時的解析度
  3. 方便切換輸入法
  4. 操作起來似乎比 VNC 還流暢

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

其實 xrdp 是一個 Linux 遠端桌面的「中繼程式」。連到 xrdp server,先是看到一個登入介面,再由它提供的 sesman 服務 (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

(xrdp 自 v0.5.0 之後,安裝與啟動的方式也有所不同,如要安裝新版的 xrdp,請參考本站另一篇教學,以下是針對 v0.4.2 的安裝說明)

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.2.tar.gz
tar -xzvf xrdp-0.4.2.tar.gz
cd xrdp-0.4.2
make
make install

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

/usr/local/xrdp/xrdp_control.sh start

啟動 xrdp

啟動 xrdp 指令:

/usr/local/xrdp/xrdp_control.sh start

xrdp 的設定檔

相關設定檔放在 /etc/xrdp/,比較重要的是「xrdp.ini」,裡面訂定了 xrdp 的連接埠 3389 與登入種類。請確保 xrdp server 上的防火牆有允許 3389 連接埠通過。

另一個設定檔「sesman.ini」則定義了本機啟動的「sesman」服務之運作方式。在 [Globals] 中的這一行:

ListenAddress=127.0.0.1

表示 sesman 只允許從本機登入,如果配合 xrdp 的「sesman-any」要從別的主機登入,可將 127.0.0.1 改成 0.0.0.0 才能允許登入。

登入 xrdp

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

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

  1. sesman-Xvnc: 透過 xrdp 的 sesman 服務登入本機的桌面,本機不需啟動 VNC Server。
  2. console: 登入本機的 VNC Server,本機需另外啟動 VNC Server。
  3. vnc-any: 登入其它已經啟動 VNC Server 的主機。
  4. sesman-any: 登入其它有安裝 xrdp 或有執行 sesman 的主機。
  5. rpd-any: 登入其它已經啟動遠端桌面 (RDP Server) 的 Windows 主機。
  6. sesman-X11rdp: 這個項目我沒有測試成功,從字面上的意思來看,應該是連結本機端由 X Server 提供的 RDP,但目前 Linux 的桌面應該還沒有具備這樣的功能!

以上的登入種類如果太多,可以編輯 /etc/xrdp/xrdp.ini,將 [xrdp*] 的各個區段予以刪除或修改排序。

桌面環境

以「sesman-Xvnc」選項登入 Linux 桌面後,預設是使用 KDE 桌面,其作業環境是英文的,這些設定都與「startwm.sh」這個指令檔有關。

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

export LANG=zh_TW.UTF-8

這樣就可以了。

    • 03/12. 2009 5:33下午
    Using Internet Explorer Internet Explorer 7.0 on Windows Windows XP

    謝謝您的分享,雖然我在用 Windows 的 “遠端桌面連線” 進行存取一直沒辦法成功
    請問我可能有什麼問題造成我失敗ㄋ

    • citypig
    • 07/01. 2009 6:19下午
    Using Mozilla Firefox Mozilla Firefox 3.0.11 on Windows Windows XP

    to 勳:

    應該是 Linux 上防火牆的問題,請先關閉防火牆,或開啟 3389 port。

    • joray
    • 08/13. 2009 2:59下午
    Using Google Chrome Google Chrome 2.0.172.39 on Windows Windows XP

    您好!

    請問一下 /etc/services 這裡面
    ms-wbt-server 3389/tcp # MS WBT Server
    ms-wbt-server 3389/udp # MS WBT Server
    這表示有開啟3389 port嗎
    如果有的話 那還有可能是什麼問題呢

    謝謝喔~

    • citypig
    • 08/14. 2009 12:11上午
    Using Mozilla Firefox Mozilla Firefox 3.5.1 on Windows Windows XP

    to Joray:

    /etc/services 只是定義一些常用的服務及 Port,並不表示一定在執行中!

    請用以下的指令判斷 port 是否正在使用:
    # netstat -tnlp | grep 3389

    若服務有在執行卻不能連線,請先將防火牆關閉再試試看。

  1. Using Mozilla Firefox Mozilla Firefox 9.0.1 on Windows Windows 7

    如果可以穿過防火牆就更好了...

  2. Using Google Chrome Google Chrome 31.0.1650.63 on Windows Windows 7

    最新的是linux桌面操作系统是fedora21,fedora21发布与新功能介绍(附fedora21安装教程与fedora21下载地址http://www.itpux.com/article-12-1.html )

  1. 03/16. 2013

return top

%d 位部落客按了讚: