How to run GUI applications remotely on a headless server?

This is more than possible using X11 tunneling. The exact instructions for doing this differ depending on the platform you are using to connect to the server.

Windows XP/7/8

You will need to download and install the following tools:

  • PuTTY
  • Xming

Once you have Xming installed, launch the program. You now have an X11 session running locally on your computer. When you launch PuTTY to connect to the server, expand the "SSH" column on the left and click on "X11":

enter image description here

Now make sure the "Enable X11 forwarding" checkbox is checked:

enter image description here

Connect to the server as you normally would. Now when you run an X11 application (such as Firefox) it will use your local X11 server:

enter image description here

Ubuntu 12.04+

X11 forwarding in Ubuntu is incredibly simple. You don't even need to use PuTTY. Just open a terminal and use the SSH command:

ssh -X myserver.example.com