Vine was a very good VNC-Server, but unfortunately only for Mac OS X. Well, under Linux, of course, there are a lot of vnc-servers. One I have found is vino, the VNC-Server for the Gnome-Desktop. One drawback of vino was, that I couldnt configure it to only listen to localhost-connections – which is what I want to have, because I want to tunnel it through SSH anyway.
Thus, using vino, I would have to configure my firewall not to allow connections from outside localhost. I dont like having to trust my firewall. I dont like firewalls at all, they make a lot of things more complicated – using them is ok, but only as an additional security-layer.
Now, I have tried x11vnc. x11vnc has an option „-localhost“ which makes it only accepting localhost-connections.
The reason for using VNC anyway, instead of just X-Forwarding, is, that I want to keep my current session, being able to continue it. Dunno if this is possible with X11. Maybe with XDMCP or something, but VNC appears to be the easiest way so far. And actually, I like the VNC-Protocol. I read the specification, and the simpleness of it convinced me. But when reading it and trying to implement a client, I wondered why there was a CopyRect-Encoding (which copies a rectangle from one part of the screen to another part), but no possibility of defining some external surfaces for caching. The easiest possibility coming in my mind was just to let the server define some kind of ClipRect, naming the part of the sent graphics which belong to the screen, getting the other part as a caching surface. But since therefore one would have to extend the protocol, maybe it would just be sufficient for the server to rely on the scrolling-facilities of most vnc-clients.
And guess what, thats exactly what x11vnc does. Using the „-ncache“ option. A software implementing something I had in mind. If that is no reason to use it …
Still, something I cannot manage is to lock the Screen on my local machine while being able to use it on another computer. I could do this with vine.