适用于 Amazon EC2 Ubuntu 的可靠虚拟桌面环境

适用于 Amazon EC2 Ubuntu 的可靠虚拟桌面环境

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

我想知道你们是否有过这样的经历,如果有,我应该尝试什么?

现在我正在运行 LXDE 桌面,我可以通过 xrdp 连接。我遇到的问题(最大的问题是)桌面环境非常不稳定。很多时候我都会在未经通知的情况下断开连接,并且无法重新连接。我还注意到服务器有时会自动关闭我的 java 程序(我仍在试图找出确切的原因)。例如,刚才我登录到 LXDE 并启动了我的 java 程序。几分钟后,RDP 断开连接,现在我无法重新连接。我可能必须重新启动实例。

另一个问题(但远不如第一个问题严重)是,每次我通过 XRDP 重新连接时(假设它没有崩溃),它都会自动启动新的桌面会话,而不是重新连接到旧会话。这没什么大不了的,我总是可以找到前一个会话的 ID,并通过 ssh 编辑配置文件以强制连接到该 ID,但这很麻烦,应该是自动的。

谢谢!

答案1

过去五年来,我一直在很多运行 GUI 的服务器上运行 VNC 服务器。它并不理想,设置有点笨重,安全性也不好(例如,密码以 8 个字符连接),但如果您不需要很高的安全性,它可能是一个适合您的解决方案。

答案2

我做了一些选择,最终想出了一个比我之前更好的东西。我tightvncserver按照以下说明在 EC2 云服务器上进行了设置本教程

然后我打算tightvncserver通过 SSH 隧道连接到服务器,使用普通的基于密钥的连接。为此,在按照上述教程操作后,您可以通过 SSH 连接到服务器,同时建立隧道。

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

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

tightvncserver :1

然后你只需要使用任何旧的 VNC 客户端连接到 localhost 的 9000 端口即可。请记住密码是 VNC 密码,而不是 linux 系统密码:

在此处输入图片描述

我比以前更喜欢这个,因为 1) 每次 VNC 都会自然地重新连接到 1 个桌面会话。2) 除了 SSH 端口外,我不需要打开任何端口。之前我打开了一个用于 RDP 连接的端口。我关闭了它,现在只有 1 个端口在监听 SSH 连接。

相关内容