To clarify things, by "remote-desktop solution" I mean connecting to a remote Linux workstation for the purposes of being able to work e.g. from home. There are of course other use-cases which have other requirements and possibilities.
There are lots of articles online which cover the topic of "best remote desktop solutions on Linux", so go ahead and google it.
Requirements? Well, I have a few:
- Cross-platform on the client side. I want the flexibility of using any OS to connect.
- It has to use a encrypted connection.
- It has to be able to connect to the physical desktop, i.e. the same screen as is displayed on the monitor physically connected to the machine.
- Performance. It needs to be "fast enough", which is a very subjective measure.
- When connecting to the remote Linux machine, the client should automatically resize the remote (physical) screen to the native size of the client's screen. The remote Linux machine will often have multiple monitors, but the client will typically not.
- I should be able to connect to the machine and login using the same credentials as when I'm at the machine.
NoMachine is a novel concept where your physical desktop is streamed as a compressed video-stream, as opposed to sending logical drawing operations and compressed bitmaps as e.g. VNC does. (Disclaimer: this is the impression I got when using NoMachine, but I may be wrong). Despite claims of being blazingly fast, I wasn't impressed with the performance, at least not when I compare it with RDP on Windows. Also, it never was able to resize the remote screen despite claims to have support for that.
I've made several attempts at getting x11vnc to work, but I've always given up due to bad performance and that it requires many manual steps to get everything working. However, I recently gave it another try and actually managed to get something which almost was acceptable:
- Starting the server as "x11vnc -find -nopw" makes it automatically find my physical desktop even when logging in remotely via ssh.
- Setting up a putty ssh tunnel is of course annoying, but with a Typically my brain goes like this: "Hm, I need to work from home today. I'd like to work on my Linux laptop, but I left it at work.
little fiddling you can automate almost all of it.
- Performance-wise it was better than I remember it. Maybe this is due to improved broadband connection at home.
- Using "xrandr -s 1920x1080" (on the remote machine, after connecting) successfully managed to resize the screen to the client's native resolution. Not exactly "automatic", but better than nothing. Also, it is really annoying that I need to manually reconfigure my monitors when I get back to work.
Actually, there is a third choice. Bring my laptop home with me, but since I don't have VPN access on my Linux machine, that means I'm limited to offline development. Which of course sometimes can mean improved productivity.