在上一家单位工作时,我们有个ubuntu编译服务器位于上海,我们需要在无锡使用远程登录工具连接过去,当时使用的是xshell来传输Ubuntu下应用程序的X11界面,底层应该用的是ssh -X来实现X11转发。但是xshell的ssh协议本身就不是针对于远程桌面这种场景所设计的,因此通过公网ip连接后,操作远端图形应用时有很大的延迟滞后。通过查询资料,得知目前最好的远程桌面协议是Windows自带的mstsc的RDP协议,而Xrdp是Microsoft 远程桌面协议 (RDP) 的开源版本,因此我考虑使用开源的xrdp协议来代替ssh -X用于linux桌面环境下的远程登录。
环境:Ubuntu 14.04 LTS x86_64
操作步骤:
1. sudo apt-get install xrdp
xrdp 依赖vnc4server,本人apt install xrdp时同时安装了vnc4server,否则需要单独安装vnc4server包。
2. sudo apt-get install xfce4 // 安装轻量级的桌面环境即可
3. echo xfce4-session > ~/.xsession
4. sudo service xrdp restart
ubuntu 装好软件后,在Windows下面使用mstsc直接远程连接Ubuntu即可。注意,有帖子声明xrdp不支持gnome桌面,因此预装了xfce4轻量级桌面,也可以选择其他桌面。
gnome自带的gnome-terminal不受xrdp支持,如果需要使用terminal,需使用xfce4附带的xfce4-terminal(sudo apt-get install xfce4-terminal),可在Desktop上建立软链接方便使用。
ln -s /usr/bin/xfce4-terminal.wrapper /home/user/Desktop/xfce4-terminal
xrdp登录选择项配置位于/etc/xrdp/xrdp.ini文件,默认sesman-Xvnc方式,如果远程桌面意外中断,则下次登录时可以指定Reconnect,须在xrdp.ini中添加以下:
[xrdp8]
name=Reconnect
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=ask5912
端口可以根据需要自己配置,最好是Reconnect的port配置和sesman-Xvnc方式的port配置一致。环境搭建完成后就可以在windows下直接使用mstsc登录远端主机,得益于Xrdp协议的优良设计,操作延时卡顿的问题得到了较大程度的改善。
家目录下:~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml,将<property name="<Super>Tab" type="string" value="switch_window_key"/>修改为<property name="<Super>Tab" type="empty"/>,service xrdp restart重启服务即可。
一篇关于各类远程控制工具性能比较的帖子:
https://blog.51cto.com/h2appy/792636