使用VNC远程连接ECS实例中的Ubuntu系统

大数据学习路线图

返回《在阿里云中搭建大数据实验环境》首页
提示:本教程是一个系列文章,请务必按照本教程首页中给出的各个步骤列表,按照先后顺序一步步进行操作,本博客假设你已经顺利完成了之前的操作步骤。
通过网页中的管理控制台来登录ECS实例中的Ubuntu系统,对于开发者而言,使用体验不是很好。建议在本地电脑使用VNC远程连接ECS实例中的Ubuntu系统,可以带来更好的体验。

什么是VNC

VNC基本上是由两部分组成:一部分是客户端的应用程序(vncviewer);另外一部分是服务器端的应用程序(vncserver)。VNC的基本运行原理和一些Windows下的远程控制软件很相像。VNC的服务器端应用程序在UNIX和Linux操作系统中适应性很强,图形用户界面十分友好,看上去和Windows下的软件界面也很类似。在任何安装了客户端的应用程序(vncviewer)的Linux平台的计算机都能十分方便地和安装了服务器端的应用程序(vncserver)的计算机相互连接。

在Ubuntu系统中安装VNCServer并配置

首先,采用下面两种方式中的任意一种方式,使用普通用户(不是root用户),从本地电脑登录到远程ECS实例中的Ubuntu系统:
(1)方式一:根据前面博客介绍的方法,登录阿里云官网,进入网页管理控制台,发起对ECS实例的远程连接,使用普通用户linziyu登录Ubuntu系统,打开一个终端。
(2)方式二(建议采用本方式):使用Putty软件实现SSH登录到Ubuntu系统(具体方法可以点击这里参考前面的博客),进入到命令行界面。
假设这里笔者采用用户名linziyu,从本地电脑远程登录到了ECS实例中的Ubuntu系统,进入到了命令行界面,下面,就可以在里面输入Shell命令,实现在Ubuntu系统中安装VNCServer。

在安装VNCServer之前,先执行如下命令更新一下apt:

sudo apt-get update

输入以下命令安装VNC,安装过程中需要输入Y来确认:

sudo apt-get install vnc4server

安装完成以后,请输入如下命令启动VNCServer:

vncserver

输入上述命令后,就会开始启动VNCServer,在启动过程中,会出现提示,让你输入密码,需要输入两次密码。注意,这个密码要记住,这个密码就是后面我们在本地电脑上使用VNCViewer客户端发起远程连接ECS实例中的Ubuntu系统时需要输入的密码,到了后面使用VNC连接的时候,VNCViewer客户端会弹出一个密码框,你可以输入这个密码。

vncserver启动结束后,如果能够看到 New ‘iZbp1idfrdpf1c3its2hpkZ:1 (linziyu)’ desktop is iZbp1idfrdpf1c3its2hpkZ:1字样的时候,说明启动成功。

gnome 桌面环境安装与配置

依次执行如下步骤完成各个组件的安装
(1)安装x-windows的基础

sudo apt-get install x-window-system-core

(2)安装登录管理器

sudo apt-get install gdm

(3)安装Ubuntu的桌面

sudo apt-get install ubuntu-desktop

(4)安装gnome配套软件

sudo apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal

(5)修改VNC配置文件

sudo vim ~/.vnc/xstartup

上面命令会使用vim编辑器打开xstartup文件,请把这个文件内容清空,把下面内容复制粘贴进去:

#!/bin/sh
# Uncomment the following two lines for normal desktop:
export XKL_XMODMAP_DISABLE=1
 unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
unset DBUS_SESSION_BUS_ADDRESS
gnome-panel &
gnmoe-settings-daemon &
metacity &
nautilus &
gnome-terminal &

保存该文件并退出vim编辑器(vim编辑器的使用方法可以点击这里阅读)。
杀掉原桌面进程,输入命令(其中的:1是桌面号):

vncserver -kill :1

输入以下命令生成新的会话:

vncserver :1

上面两条命令如果都能够成功执行,应该会在屏幕上返回类似如下的信息:

linziyu@iZbp11gznj7n26xkztu64dZ:~$ vncserver -kill :1
Killing Xvnc4 process ID 1939
linziyu@iZbp11gznj7n26xkztu64dZ:~$ vncserver :1

New 'iZbp11gznj7n26xkztu64dZ:1 (linziyu)' desktop is iZbp11gznj6m26xkztu64dZ:1

Starting applications specified in /home/linziyu/.vnc/xstartup
Log file is /home/linziyu/.vnc/iZbp11gznj6m26xkztu64dZ:1.log

备注:如果在某个时间,Ubuntu系统关闭以后重启,则vncserver也会被关闭,需要再次进入终端,用“vncserver :1”命令去启动vncserver。

通过管理控制台配置ECS实例,开放5900和5901端口

因为VNCViewer连接ECS实例中的Ubuntu系统时,需要访问5900和5901端口,因此,需要让ECS实例开放这两个端口,否则VNCViewer无法连接ECS实例。
请在本地电脑中,打开一个浏览器,访问阿里云官网,用自己账户登录阿里云,进入网页中的管理控制台,在网页左侧点击“云服务器ECS”会出现如下界面:

在这个界面中,点击“安全组”,会出现新的网页内容,在这个新的网页的右上角,可以看到如下所示的界面:

请在该界面中,点击“配置规则”,然后,在新出现的页面中,在页面右上角的位置,会有如下界面:

在这个界面中,点击“添加安全组规则”,会弹出如下图所示界面:

在这个界面中,需要配置5900和5901端口开放,就按照上面图中的效果进行配置,然后,点击确定就可以了。

在本地电脑使用VNCViewer发起远程连接

在本地电脑中,下载VNCViewer软件(可以点击这里到百度云盘下载 (提取码:gx0b)),比如从百度云盘下载VNC-Viewer-6.17.1113-Windows.exe到本地电脑,然后,安装VNCViewer。安装以后,在本地电脑中打开运行VNCViewer,出现如下所示界面:

在这个界面中,有个文本框,需要在里面输入远程ECS实例的公网IP地址和桌面号,格式是“IP地址:1”类似这种形式,比如:43.96.171.205:1。输入IP地址以后,按键盘“回车”,开始发起远程连接:
会出现如下界面:

过几秒,又会弹出如下界面,直接在这个界面中点击“continue”继续就可以了。

如果是第一次发起VNC连接,还会出现一个对话框(如下图所示),要求你输入密码,这个密码就是上面你在安装VNCServer时候设置的密码。第一次连接中输入密码以后,可以在界面中选择让VNCViewer记住密码(有个复选框"Remember Password",选中这个复选框,就可以记住密码),这样以后再次发起连接,就不需要输入密码。

然后,就可以成功登陆到远程ECS实例中的Ubuntu系统了,登陆后的界面如下所示:

进入Ubuntu系统以后,我们一般需要打开一个命令行终端,在里面执行Shell命令,如下图所示,可以点击Ubuntu桌面左上角的“Applications”,在弹出的菜单中点击“Accessories”,在弹出的菜单中点击“Terminal”,就可以打开一个终端了。

打开的终端的界面如下,可以在里面输入Shell命令执行。

如果要在图形化界面中,浏览各个目录下的文件,如下图所示,可以点击“computer”。

如果要在图形化界面中打开浏览器,访问网站,可以点击Ubuntu桌面左上角的“Applications”(如下图所示),在弹出的菜单中点击“Internet”,在弹出的菜单中点击火狐浏览器图标,就可以打开一个浏览器来访问各个网站了。