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 位部落客按了赞: