- 需求
- 备选方案
- 软件
- 配置
- 存在的问题及解决方案
===============================================================
1. 需求
通过远程桌面访问Ubuntu 14.04。
因为服务器需要托管在机房,不能直接接触到,但又时常需要远程访问一些图形化的程序,所以产生了远程桌面的需求。
2. 备选方案
实现该需求还是有很多方案可选的,但是各有优劣:
- SSH X11 Tunneling
- VNC
- XRDP
从我的使用体验来说:
X11 Tunneling 是最简单的方案,但是局限比较大,经常出现无法转发的情况。体验不是很好。
VNC 可以通过TurboVNC、vnc4server、tightvncserver等实现,但是在分辨率上个人感觉体验不是很好,并且需要vncviewer来访问(其实软件很小)
XRDP XRDP通过rdp协议进行通讯,可以方便的使用windows自带的mstsc进行访问,而且功能比较强大,自动缩放的体验比较棒。
因此,我选择XRDP作为远程桌面访问的方案。
3. 软件
- xrdp
- xfce4
sudo apt-get install xrdp xfce4 xfce4-goodies gnome-icon-theme-full
xrdp:
来源:
来自 universe,所以软件源中要加上universe(我顺手把multiverse也加上了,因为xfce4在multiverse中)。
- sudo apt-add-repository universe
- sudo apt-add-repository multiverse
- sudo apt-get update
依赖:
(依赖vnc-server哎,我之前还把vnc删了,安装完xrdp发现又出现了,才意识到依赖vnc-server)
- xrdp
- Depends: libc6
- Depends: libpam0g
- Depends: libssl1.0.0
- Depends: libx11-6
- Depends: libxfixes3
- Depends: adduser
- |Recommends: vnc4server
- |Recommends: tightvncserver
- Recommends: <vnc-server>
- tightvncserver
- vnc4server
xfce4:
之所以选择xfce4不用原有桌面环境的原因,下文另表。
来源:
来自 multiverse。
依赖:
- xfce4
- Depends: xfwm4
- Depends: xfconf
- Depends: xfce4-settings
- Depends: xfce4-panel
- Depends: xfdesktop4
- Depends: thunar
- Depends: gtk2-engines-xfce
- Depends: xfce4-session
- Depends: xfce4-appfinder
- Depends: xfce4-mixer
- Depends: orage
- Depends: libxfce4ui-utils
- Suggests: xfce4-goodies
- Suggests: xfce4-power-manager
- Suggests: gtk3-engines-xfce
- Recommends: xorg
- Recommends: desktop-base
- Recommends: thunar-volman
- Recommends: tango-icon-theme
- Recommends: xfce4-notifyd
4. 配置
系统:
修改默认的桌面。(2选一)
1. 修改远程登录桌面
echo "xfce4-session" >~/.xsession
2. 修改系统默认桌面
- sudo mkdir -p /etc/lightdm/lightdm.conf.d
- sudo vim /etc/lightdm/lightdm.conf.d/xfce.conf
-
- #add this line
- [SeatDefaults]
- user-session=xfce
-
- echo "xfce4-session" >~/.xsession
修改完毕,需要重启使LightDM的配置修改生效。
其他一些桌面设置可以参考wiki: https://wiki.ubuntu.com/LightDM
xfce4:
上条的桌面设置。
xrdp:
xrdp的修改,为了能够重连,我只做了登录上的修改。
- sudo vim /etc/xrdp/xrdp.ini
-
- ……
- [xrdp1]
- name=sesman-vnc
- lib=libvnc.so
- username=ask
- password=ask
- ip=127.0.0.1
- port=-1
- ……
其中要有几点要点:
1) [xrdp Number] 应该按照顺序写
2)ask选项类似于默认值,但是可以在登录框中修改
3) port的值 -1 代表寻找现阶段可用的端口
4)我们要重连需要使用上次会话使用的端口才行(我还没解决固定端口问题)
没有找到比较简单的解决方法,贴几个作为参考
http://c-nergy.be/blog/?p=4168
5. 存在的问题及解决方案
- xfce远程登录不能补全的问题
- 此问题是因为Tab被快捷键占用,去除即可。"Settings->Window Manager", in the "Keyboard" tab, clear the binding of "Switch wndow for same application -> Tab"
- vnc下不能输入s或者m的问题
- 此问题据有的网友说是因为软件冲突,但是他提供的冲突软件并不存在于我的系统版本中,所以原因未知,用不到,也未解决。
Refs:
http://www.cfei.net/archives/1324
http://www.programgo.com/article/81302225765/
http://cuiqingcai.com/402.html
https://linux.die.net/man/5/xrdp.ini