Remote Tech Support using VNC (Ultravnc SC and x11vnc+wrapper script)
Ok, some time back I’d done a writeup on UltraVNC SC, which is a nice customizable (windows version) VNC server that essentially let’s someone doing remote support build their own downloadable .exe that runs and automatically tries to make a direct connection to a “listening” vnc viewer. It’s good for helpdesk environments as an easy download and run, and I’ve done some trials at using it over the internet with some of my existing computer service customers. Very soon, I’ll be adding a page and information about Remote Tech support services using this same method. I have run into some problems with it though. There are multiple advantages to this approach though (the main being NO firewall config for the user needing remote support – all firewall config is done at the “support center” end. Another advantage being that it’s “hardcoded” to connect to a specific given address and if that fails it gives up and uninstalls itself. The last advantage being that it completely uninstalls after a successful session as well. (Well, technically it never “installs” to begin with.))
The main problem I saw at the start is that the ultravnc sc server only provides a limited number of rendering/compression algorithms and using it with anything but ultravnc client is painful. I did however, find it very easy to “install” and run the ultravnc client under wine (on linux) on my primary desktop. In fact, I did an alias to make life a bit easier ( alias ultravnclisten=’/usr/bin/wine /home/path/to/ultravnc/viewer/vncviewer.exe -listen’ )…. in this example, I didn’t even install it, just downloaded the binary viewer and ran it with the wine executable. It even loads it’s icon in the taskbar and is fairly responsive loading. VNC performance is reasonable on the dsl/cable connections I’ve tested with.
Obviously, using this for tech support is limited to minor issues. You certainly can’t ask someone to download www.averyjparker.com/mycustomizedvncserver.exe if they can’t get to the internet to begin with, so it must be assumed that the hardware can boot windows and get to the internet. But, I was a bit bugged that this was a Windows-only support option. I work with a few linux installs (outside my own.) And for that matter would love to do more linux tech support. (Many times you hear that’s the main reason people are reluctant to try, not knowing who to turn to for answers to questions.) Anyway, I tried running the vnc server under wine and that didn’t work. I can’t say I was terribly surprised at this, but I basically saw complaints about various stubs that were being called (placeholders for unfinished parts of wine). So, it was obvious I couldn’t distribute a wine-ified ultravnc sc for linux desktop support.
So, I did a bit of thinking. Well, linux has so many ways to do remote administration, but all require some setup (especially if you’re behind a firewall.) VNC under linux is usually not quite the same as it’s windows counterpart. Some setups use vnc to serve out a fresh desktop session (not what’s visible on the display AT the machine.) That certainly has advantages, but not for what I’m interested in. So…. I kept looking, I wanted something (a vnc server) that would be able to connect to a “listening” vncviewer and share out the current viewable desktop. x0rfbserver is one such vnc server that I’ve used for sharing a current desktop, but I couldn’t seem to find a -connect option, so I kept looking.
Finally, I ran across x11vnc It looked like it supported exactly what I was looking for. (Frankly it took quite a bit of searching to discover this one, I finally ran across it in adept on my kubuntu testbox.) I installed and tested and it did exactly what I had hoped – it connected to my ultravncviewer correctly and shared the existing desktop. But, I wanted something even better. I can’t assume that anyone looking for linux desktop support is going to have it installed can I?
I thought for a moment about giving installation instructions which unfortunately would vary wildly by distribution. Then I looked to see if it was even available for Mandrake 2006 (no – but it is in cooker.) Hmmmm…. then as I read the website, I saw that the writer suggests that the binary x11vnc itself should be fairly portable as long as it’s not an ancient system. So, I started testing and sure enough I was able to get it to run as is on 2 boxes (Mandriva 2006 and Kubuntu dapper (which is where it had come from.)) Nice start, but I tried the Mandrake 10.0 server I have setup and it gave an error about not finding libxfixes. Ok – so I may need to work on that end of things….
I still can’t assume that it’s just going to be on any system, so I’ve got to do some sort of script to “wrap around” it. I’ve seen codeweavers do some pretty straightforward installaton instructions for their .sh scripts … basically they suggest wget ourinstaller.sh and then sh ourinstaller.sh from what I recall. So, in a slight fit of inspiration I had mashed up exactly what I wanted….. I’ll post the script in the next article.