I have a command line only Debian-based Linux server with which I would like to create a VM where anyone can remotely connect and have a play around. The guest OS that I have my eye on at the moment is either Gentoo (for it's customizability), or Arch (gentoo takes an age to install and I've never done it before).

Basically I'd have the VM running behind a NAT firewall provided by the VM software, and have specific ports forwarded to it. For example, with VNC's port 5900:

My friend contacts my IP at port 59001 with their VNC client software;

My modem gets a request for port 59001 and forwards it to my server;

The VM software running on my server is listening for this port, and is configured to forward again, this time to 5900 on the guest OS;

The guest OS has a VNC server running, listening at 5900, which responds to the request.

Some problems that I would need to resolve are:

1) What virtualization software to use on the server
2) Make sure it can run inside a NAT network and supports port forwarding from the host
3) An X server running VNC

For 1) I'm looking at QEMU. It seems to support everything I need it to. 2) is covered by 1) (supposedly).

About 3), well I was thinking of running tightVNC for this.

Thanks very much for any help/suggestions