Comes in very handy. Yes sir! On Wednesday, a friend of mine needed help getting his webcam working under Ubuntu 8.10. Because he is not so versatile with Linux yet, he suggested I should do it for him, ie. compiling some modules on his notebook using remote maintenance.
First, we tried using SSH, which would have been the easiest choice, because I basically would have only required the command line, although I would still retain the option to use X11 forwarding to start some GUI applications. This didn't work out well. A quick port scanning returned the result, that there's probably a very aggressively proxy and/or firewall (combination) set up by his ISP, thus only port 80 was opened to the outside. From within his on LAN, he could use anything, including ICQ.
So I asked some friends of mine via ICQ, if there was an option to do something like a back tunnel using SSH. Instead, I got the suggestion to try out 'VNC reverse connection', which turned out pretty well. There was some troubles at first getting it to work, because all HowTos I found about this topic are assume that you're trying to connect to Windows host using a Linux or Mac client.
I've solved that problem by doing some reading of the TightVNC Documentation, which revealed a tool called vncconnect. This probably is the command-line client the Windows host GUI is relying on when using the option 'add new user' out of the SysTray.
Let's note it down quickly:
- The system that you want to connect remotely to (= Host) has to install VNC Server - in my case, my friend installed tightvn, using a direct download from the TightVNC HQ; but should would with any other package, like vnc4server
- Start it up and do the password thingy - you are not going to need it anyway, because afterwards the host system is going to connect to you and not the other way around
- For the client side, we install the xvnc4viewer package and start it up with xvnc4viewer -listen. This will put the viewer app into listening mode, waiting for a incoming connection request - if that happens, it'll automatically open a window displaying the remote side by itself
- Next on, you have to open the port 5500 on your router or firewall to allow the remote host to connect with your system
- Now we are ready to roll: Find out your outside IP address - eg. using this site - hand it over to the guy or gal you want to get your VNC client connected with and let him or her enter the following stuff on some command prompt: vncconnect YourIPAdress:5500.
- If this doesnt work out, try vncconnect -display RemoteScreenName YourIPAdress:5500, eg. vncconnect -display linuxbox 127.0.0.1:5500
So afterwards I finally could compile the stuff my friend needed to get his bloody webcam working - or at least, what should get it working. It still doesnt do so, yet. Thus either we gonna fiddle around with the bloody modules a bit more, or else he has to buy another webcam, eg. a Logitech e3500, which is said to be working best with current Linux kernels.
Finally, some links for further reading:
- Julius Plenz - Reverse VNC Session - the article I first read and helped the most; URL not working right now, thus use theversion in Google Cache instead
- Raymond.CC Blog: Free and Easy Remote Access with VNC Reverse Connections (Windows only)
- Gitso - a cross-platform frontend for VNC reverse connections