

To make the ‘virtual screen’ remotely accessible, I use x11vnc, a VNC server that does a great job at compressing the data and hence performs very well over the Internet. The solution I picked for this is Xvfb (X virtual frame buffer) that can be used by the gnome shell and the window manager just like the real thing. So if yours does, you have to open port 22 for SSH and port 5900 for VNC.Īs the VM in the cloud doesn’t have a real graphics card and the VM environment there doesn’t simulate one, the OS has to simulate it on its own. Some cloud providers like Amazon have a firewall in front of VMs that has to be configured to allow access to a number of TCP ports, but that is independent of the GUI part I want to focus on today. I wanted to have an Ubuntu 20.04 with a Ubuntu/Gnome desktop in the cloud so I clicked myself a VM at a cloud provider and configured it with an Ubuntu 20.04 server image.


After a couple of hours I managed to get a working setup and here is how it is done:īefore I start I want to mention one limitation of my solution: When the VM is started the Desktop does not start automatically, it has to be started via an SSH login. Instructions how to launch a VM with a current version of the Xfce desktop did actually work but I wanted to have an Ubuntu 20.04 Gnome based desktop GUI on a VM in the cloud. And those that exist did not lead to immediate success, as the way a Linux desktop is started seems to change constantly and depends on which desktop is used. When I recently experimented with this I noticed that there aren’t many descriptions around how to set up such a system. That’s probably because running a virtual machine with a GUI and a desktop in the cloud that is then accessed over VNC or RDP is not done very often but comes in handy for quite a number of applications. The real servers below those VMs don’t have a screen attached nor do they have graphics hardware and the virtual machines running on them are usually only accessed for maintenance and configuration via ssh. In most cases when we are talking about ‘the cloud’ today, we are talking about virtual machines running on servers in a data center.
