如何在 Amazon EC2 上设置 Ubuntu 桌面虚拟机
Amazon Web Services (AWS) EC2 是使用最广泛的即用即付类型的弹性计算云。您可以使用 EC2 提供的 Amazon 系统映像 (AMI) 之一在几分钟内启动 VM 实例。
如果您的 EC2 用例涉及 Ubuntu Desktop,您需要了解在 EC2 上启动 Ubuntu Desktop VM 实例不太简单,因为其桌面环境需要附加屏幕。
在本指南中,我将描述如何在 Amazon EC2 上运行 Ubuntu Desktop。
简而言之,方法是首先在 EC2 上启动 Ubuntu Server 实例。然后在其上安装桌面环境,并通过VNC远程桌面访问无头服务器实例。
在 AWS EC2 上安装 Ubuntu 桌面
我假设您已经通过选择 Ubuntu Server AMI
在 EC2 上设置了虚拟机。如果您还没有这样做,请按照本教程进行设置。
继续通过运行以下命令在此服务器实例上安装 Ubuntu Desktop。
$ sudo apt-get install ubuntu-desktop
重新启动虚拟机实例。
接下来,在虚拟机上安装 VNC 服务器。
$ sudo apt-get install tightvncserver
安装后,启动 VNC 服务器(以非 root 用户身份):
$ vncserver :1
第一次运行 VNC 服务器时,它会要求您输入 VNC 密码。 VNC 密码的长度应至少为 6 个字符,最多 8 个字符。如果输入的密码长于此,则仅使用前 8 个字符。
VNC服务器启动成功后,会在其中创建~/.vnc
目录和配置文件。 VNC 服务器的日志文件位于 ~/.vnc/*.log
。
如下修改 ~/.vnc/xstartup
以便在 VNC 连接时自动启动 GNOME 会话。
$ vi ~/.vnc/xstartup
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
export XKL_XMODMAP_DISABLE=1
gnome-session --session=ubuntu-2d
修改xstartup
文件后,重新启动VNC服务器:
$ vncserver -kill :1
$ vncserver :1
最后但并非最不重要的一点是,您必须修改与 EC2 实例关联的安全组
,以允许 EC2 实例上的入站 VNC 流量。由于 VNC 使用 TCP/5901
端口号,因此请为端口 5901
添加新的入站 TCP 规则。确保应用规则更改,然后规则更改将立即激活。无需重新启动虚拟机实例。

在 EC2 上设置 Ubuntu 桌面 VM 的过程到此结束。
连接到 Ubuntu 桌面虚拟机
在将运行 VNC 客户端的本地主机端,请按照以下其余步骤操作。
首先,通过运行以下命令设置到远程 EC2 实例的 SSH 隧道。强烈需要使用 SSH 隧道进行 VNC 会话,因为您的 VNC 会话通过公共 Internet 进行,任何人都可以轻松窥探您的 VNC 流量。
$ ssh [email _ec2_host -L 5901/127.0.0.1/5901
如果远程 EC2 实例配置为需要密钥身份验证,您需要在上述 ssh
命令中使用 -i
选项指定您的私钥,如下所述。
成功建立 SSH 隧道后,安装并启动 VNC 客户端(本例中为 gtkvncviewer
)。
$ sudo apt-get install gtkvncviewer
$ gtkvncviewer
输入以下 VNC 服务器信息,然后连接。请注意,VNC 服务器端点应为 127.0.0.1:5901
,而不是远程 VNC 服务器,因为您的 VNC 流量通过 SSH 隧道。
服务器:
127.0.0.1:5901
密码:
your_vnc_password

建立 VNC 会话后,您将看到在 EC2 上运行的熟悉的 Ubuntu 桌面。
