说明
本文适用于需要使用图形化远程桌面工具登录云主机的场合。
本文参考的系统是美团云公共镜像Ubuntu 14.04。
美团云推荐使用VNC作为Linux系统的远程连接工具,而对于Windows系统,则推荐使用微软默认的远程桌面连接程序(mstsc.exe)作为工具。
使用远程桌面连接之前,请确认云主机的防火墙已经正确配置(云平台默认防火墙对于Windows机器已为RDP协议开启3389端口,而对于Linux机器,5800、5801、5900、5901等端口并未默认开通,需要用户在网页上添加新的防火墙规则)
Linux
首先在Linux云主机中安装VNC服务端程序:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vnc4server
此时,发现系统命令新增了vncserver和vnc4server,通过跟踪软链接可发现,两个命令指向同一个可执行程序,即/usr/bin/vnc4server。运行VNC服务端程序,并输入用作远程登录的密码:
vncserver
vncserver会在当前的用户目录下创建.vnc/目录,以及.vnc/xstartup文件,该文件会作为启动VNC的控制脚本。
New 'hostname:1 (yourname)' desktop is hostname:1
Creating default startup script /home/yourname/.vnc/xstartup
Starting applications specified in /home/yourname/.vnc/xstartup
Log file is /home/yourname/.vnc/hostname:1.log
注意,这里的1表示第一个session,VNC的session号是从1开始累加的,如果再开启一个server程序,那么将新生成一个号码为2的session。session号决定了该连接使用的VNC协议的端口号,如5902,在使用VNC客户端登录远程桌面时,需要指定主机IP与session号,见下文说明。
接着,安装VNC客户端,这里推荐使用RealVNC,支持MAC OS、Linux、Windows等多种系统,下载地址http://www.realvnc.com/download/vnc/latest/。
使用RealVNC客户端连接云主机,地址填写为IP:session号,如192.168.4.104:1,并输入之前设定的密码,成功连接:
在命令行终端里可以安装一下图形化软件并执行程序,如:
sudo apt-get install firefox
firefox
这样就可以使用图形化的浏览器了。
#!/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 &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
查看xstartup脚本可知,登录session之后启用的是一个简单的窗口模拟器,如果要看到效果更好的完整版ubuntu桌面,则需要安装ubuntu unity桌面包,或者Gnome、KDE等一些其他的代替品,此处略去。
Windows
使用mstsc远程桌面登录Windows云主机:
在“运行”中输入mstsc,打开连接程序,登录用户名Administrator,初始密码参见网页管理窗口,完成连接。
对于使用MAC OS的用户,可以去微软网站下载适用于MAC的mstsc程序,http://www.microsoft.com/zh-cn/download/details.aspx?id=18140
VNC与mstsc的比较
VNC工具使用的协议称为RFB(remote framebuffer),由著名的AT&T欧洲研究实验室开发,RFB是在服务器端只是简单地将窗口在图像压缩并传给客户端,客户端只充当一个图像解码显示的角色;微软远程桌面连接程序mstsc使用的协议称为RDP(remote desktop protocol),得益于微软在图形桌面领域的领先经验,RDP将用户在界面上进行的可能操作拆分为众多原语primitive,实现了对用户操作的描述;另外,RDP使用基于语法和语义的控制指令对屏幕界面进行图像描述,比如,一个区域内的含有一个按钮,那么RDP协议只需要传输该按钮的样式类型、大小、位置等信息,而不需要传输这个按钮的图像。
值得注意的是,RDP协议全程在TCP层加密数据,而大部分VNC类工具只在登录的时候加密用户信息,而不加密传输图像。
网页方式的终端登录
此外,美团云提供了一种基于网页HTTP方式的图形终端,Windows和Linux皆可使用。不过由于使用网页方式,连接速度可能无法达到其他专用远程连接软件的标准,该方式适用于用户由于错误配置系统而导致的云主机网络无法连接的情况。
该图形界面与云主机运行情况无关联,即使云主机还没有完全运行,也可以看到运行之前的启动界面。如配置fstab错误导致的文件系统mount失败,机器无法启动,便可以在此阶段输入命令,取消数据盘挂载。