可靠的亚马逊EC2 Ubuntu虚拟桌面环境

我在Amazon EC2 Cloud中有一个Ubuntu 13.04实例。 我试图运行一些需要GUI桌面环境的服务器上的Java程序。 我只需要一个桌面实例就可以通过远程桌面进行连接。 我希望能够每次重新连接,当我断开连接时,我希望实例能够在我没有连接的情况下继续运行,就像我离开台式计算机一样。 当然,应该可以正式“注销”实例,这将结束我的桌面会话,但很多时候我需要程序继续运行,而我没有物理连接。

我想知道你们有没有这方面的经验,如果是的话,我该怎么办?

现在我有LXDE桌面运行,我可以通过xrdp连接。 我遇到的问题是BIG问题,桌面环境非常不稳定。 很多时候,我断开连接,恕不另行通知。 另外我注意到,服务器有时只是closures我的Java程序自动(我仍然试图找出确切的原因)。 例如,刚才我login到LXDE,并启动了我的Java程序。 几分钟后RDP断开,现在我无法重新连接。 我将不得不重新启动实例。

另一个问题,但不像第一个那么严重,就是每次我通过XRDP重新连接(假设它没有崩溃),它自动启动一个新的桌面会话,而不是重新连接到旧的。 这不是什么大问题,我总是可以find以前会话的ID,并通过ssh编辑configuration文件强制连接到该ID,但这是一个痛苦,应该是自动的。

谢谢!

在过去的五年里,我已经在很多服务器上运行了一个VNC服务器,这些服务器上运行着GUI。 这是不理想的,设置有点笨重,安全明智,它不是很好(密码连接在8个字符的例子),但如果你不需要高安全性,它可能是一个解决scheme。

我做了一些采摘,最终得出了比我所想的更好的东西。 我使用本教程中的说明在EC2云服务器上设置了tightvncserver

然后,我正要使用正常的基于密钥的连接,通过SSH隧道连接到tightvncserver 。 为了做到这一点,按照上面的教程,可以通过SSH连接到服务器,同时build立隧道。

 ssh -i KeyPair.pem user@<ec2-server-ip> -L 9000:localhost:5901 

然后,您需要启动桌面会话,但在SSH命令行连接中input以下内容:

 tightvncserver :1 

那么你只需要使用任何旧的VNC客户端连接到本地主机的端口9000。 记住密码是VNC密码,而不是linux系统密码:

在这里输入图像说明

我更喜欢这个,因为1)VNC自然重新连接到每个时间只有1个桌面会话。 2)我不需要打开SSH端口以外的任何端口。 在打开RDP连接的端口之前。 我closures了,现在只需要1端口监听SSH连接。