Over the weekend, I started playing around with using a remote Linux desktop, via VNC. Because the remote system is actually remote – it’s a virtual dedicated server, in a datacenter somewhere about 160ms away from me – I’m using an SSH tunnel to connect to it.
So far, I’m really impressed, and having a lot of fun.
You’re probably familiar with the idea of how an internet proxy works – an application on your computer (say, a web browser) sends data to another computer somewhere, and the data comes out the other end, appearing to come from the remote system. A VNC setup is a bit different – you connect to the remote machine, and then run applications right on the machine, as if you were sitting right there in front of it.
Once you get it set up, it’s fairly straightforward – and if you know your way around Linux, setting it up is pretty painless. Following a couple tutorials online, I was up and browsing the web in a (remote) Firefox window in about forty-five minutes.
For the most part, a lot of the things you can do on a remote desktop via VNC are things you can do on the web from your browser, thanks to stuff like Google Apps. The difference, of course, is that you have a bit more control over your data when it’s on a computer you administer – which could be significant if you’re distrustful of Big Brother and his Googly appendages.
There are other things you can do, as well – send and receive email on the remote system via Thunderbird, or use instant-messenger clients – which can provide better privacy when done via VNC than other methods (proxying IM and email to hide your real IP address can be non-trivial). In fact, even for things that are relatively straightforward to proxy or tunnel, running them remotely obviates the need to worry about proxy configuration and information leakage. Also, if your server hosts permits it, there’s a whole wide world of IRC and bittorrent to be explored, remotely… a few minutes’ thought should come up with other uses, as well.
I’m leasing a virtual server to use as a remote desktop, for about 5 USD/month. Running Debian 5 under the Xen virtualization system, I have 256MB of RAM to play around with (and another 256MB of swap space, but I really don’t want to use that, ever), a couple hundred gigabytes of transfer every month, and around eight gigs of storage space, as well as the use of a 2.4GHz Xeon core. With the Fluxbox window manager running under xdm, browsing the web in a remote Firefox (Iceweasel) window is slow but usable; CPU usage is about 10%, and memory usage eventually rises slowly from about 110MB. I strongly suspect things would be a bit more responsive if the remote server was closer than 160ms away, but we have to make do with what we’ve got; if I could find a cheap VPS in Chicago, that would cut the latency roughly in half, which would probably be noticeable.
My guess is that 256MB of dedicated RAM is about the bare minimum for a Linux VNC host, assuming nothing else is running, as is the case on my VPS. Having access to multiple CPU cores might make a noticeable difference, too. (As long as they’re not throttled – A single 2GHz core might be better than four 500MHz “slices”.) Depending on what you want to use the machine for, more RAM is probably the most critical component.
Have you found a fun use for VNC? Or an easy way to setup a true multi-user remote desktop on Debian? Leave a comment, or e-mail the usual address…