Among remote control solutions, there is an absolute leader – german TeamViewer. Works everywhere, connects thru firewalls (eg. by using 3rd party strapping) and does it quickly. Never the less, no matter how perfect it might be, there might be reason why you’d prefer to go with alternative VNC (Virtual Computing Network) solution.
In our case, we used Ubuntu as host (server) and we found out that team viewer client for it is really large (63.8 mb for version 5, installed (read about: half of it to download)), which can still be problematic for many users out there.
Another point is that X11VNC and clients for it (for example, UltraVNC viewer) are free and open source, while TeamViewer – no matter how secure and fast it is – still requires money (not for personal use, it doesn’t).
So, let’s try and analyse what makes TeamViewer so speedy and secure, and then, look for suitable tweaks in our X11VNC + UltraVNC setup.
Now imagine that most remote access software is based on VNC protocol or its derivatives. That includes TeamViewer too, but why then every other software is so incredibly slow in comparison?
Part of problem is client – if you are using UltraVNC, make sure you also use adequate compression method (in our case, for speedy LAN, it is ULTRA).
Speaking for X11VNC in Ubuntu, we found a cure to this slowness:
So, executing:
x11vnc –wait_ui 1 –defer 15 –wait 15 –ncache 0 –find
Will give you substantial boost in refresh times (especially, if you are running VNC on LAN or High Speed internet line).
First and foremost is creation of vnc password. It is done on our Ubuntu server by issuing:
vncpasswd
command and entering twice the desired password. After that, you have to add 2 more options to command line:
x11vnc –wait_ui 1 –defer 15 –wait 15 –ncache 0 –find –usepw –rfbauth ~/.vnc/passwd
This will ensure password authorization is always performed. Unfortunately, passwords are limited to 8 chars (thanks to VNC protocol developers).
There are actually few “long” tricks to make VNC more secure (stunnel, encryption plugins, etc), but we thought you might prefer shortcut, which is by using putty tunneling capability. All you do, is launch putty and type in:
Session: hostname, port (of computer where x11vnc is running)
Connection->SSH->Tunnels: source port = 5900, destination = localhost:5900
And connect to your Ubuntu server via typical SSH shell. Now, let’s open UltraVNC viewer, change remote address into 127.0.0.1:5900 and voila! We’ve got ourselves and encrypted session!
Make sure you save your session, if you’ll be using it often, and also make key based authentication for your SSH – it will save you lot of password retyping, and generally is more secure.
It’s quite hard to meet somebody who uses Internet these days with native language only – people do speak their native language + something else. Like Arabic + French, or Chinese + English, or German + Spanish. Naturally, when that need arises, you add new keyboard layout, and get with working.
But hey! Guess what? With default X11VNC settings – Shift does not work (hence keyboard switching, if you use Shift key for it).
Some people claim that they’ve solved the problem by adding –xkb switch. While its possible, our personal experience showed us that –nomodtweak and –noxkb – do the trick much more accurately. It’s up to you to test and find out optimal combination.
Wait! Switching works, but what happened to some keys? This “e” is printing as “/”, and in other language – some letters are missing at all! Its curable with VNC session restart, but don’t you think it’s kind of drastic measure?
We thought so. And here is the cure:
-macuskbd – option, initially designed for Macs, to treat keys as if they were on US keyboard. We, honestly think, that in modern International environment, it should be so by default (eg: 1 keyboard for all, but with different language layouts), but for some reason it’s not. But hey! 1 option solves it, so why bother?
Not to retype our long command each time:
x11vnc –find –nomodtweak –noxkb –macuskb –wait_ui 1 –defer 15 –wait 15 –ncache 0 –usepw –rfbauth ~/.vnc/passwd
..we just put it all to ~/.x11vncrc, in this form:find
nomodtweak
noxkb
macuskb
wait_ui 1
defer 15
wait 15
ncache 0
usepw
rfbauth ~/.vnc/passwd
So, next time, all you have to do is type:
x11vnc – and server is started.
You might also use –forever switch to keep x11vnc running even when you disconnect (and want to reconnect a bit later, for example). The above mentioned tricks will probably fail one way or another if used on low-end server with multiple active users logged in the same time (it should fail, since all of its CPU will be exhausted on first couple of clients).
In case all of this seems hard for you – stick on with TeamViewer – it’s also fast and secured.
Good luck!
Add new comment