The problem
In ideal world every user knows how to forward ports in NAT routers, use perl-scripts to knock on firewalls, establish ssh-tunnels and start a vncserver. The world is indeed not ideal and from time to time I wish to use establish a remote desktop connection or VNC to a less technical inclined friend to help the solve a problem on their computer.
The ideal but non-existing solution
The ideal solution would be to have piece of software that met the following demands:
- Cross-platform
- Secure – uses passwords and encrypts the sesssion
- Simple
I can easily support Windows and Apple users using TeamViewer a commercial product free for personal use. This program is really easy since it does works trough a NAT router and it is encrypted. The only problem is that it is not cross-platform. That said I can support Windows and Mac users running Teamviewer in wine but I can not use it to support a another Linux user.
Common solutions – never meets all the demands
When looking around on the net it seems that most people are ignorant of at least one of the problems in demands I listed.
Opening ports
Most of the time I see people write that the non-technical user should open ports for VNC in their router. This is crazy-talk. Non-technical users wouldn’t know how to do this and there is also the chance that they don’t have administrator rights on the router. A NAT router accepts all outgoing connections and rejects all incoming connections that don’t have origins inside the NAT. There exists clever ways to get through NAT routers, such as the nat-traverse – Use of UDP to traverse NAT gateways [sourceforge.net], but this again is not simple.
No encryption
Another problem often ignored is that VNC connections is unencrypted should be send through a SSH tunnel or similar to avoid bad guys to listen-in. Creating SSH-tunnel requires some technical skills which I don’t assume that non-technical user posses.
The best solution so far
The best solution I have seen so far is the Remote Help Assistant [launchpad.net]. This python application tries to accomplish the goal of Teamviewer for Linux users. It is not cross-platform but does try to make the support experience easy and secure for non-technical users. The program is still under development and still needs work since it tells user to open ports in routers if they are behind a NAT router. In any case i think this is closest to the perfect solution I have seen so far and anyone interested should test it and give bug and general feedback so the program can mature.
Further reading
- Recovery/Remote [wiki.ubuntu.com] – Describes the exact problem.
- Remote Help Assistant [launchpad.net] – This python application is the best solution so far but is still under development.
- gitso [code.google.com] – A small cross-platform program. Lacks NAT-transversal ability.
- VNC [help.ubuntu.com]. – General description of VNC and usage.
- NAT traversal [wikipedia.org]
Jeg har ikke selv haft tid til ordentligt at kigge på dette program/hjemmeside men jeg tror det kan klare de fleste af dine krav.
http://www.logmein.com
Tak for en go’ blog
/Simon
Det er dejligt at se at der nogen læser min skriverier. 🙂 Jeg tager lige resten på engelsk, hvis der nu er nogen der også kan bruge dit råd 🙂
Apparently logmein has a Linux client as well, although only the console version. Since everything can be done by console anyway it could be solution to support other Linux users:
https://secure.logmein.com/products/hamachi/list.asp
I use Techinline Remote Desktop (http://www.techinline.com) and I gotta say it’s one of the easiest services out there in terms of connecting..I also like their payment structure and the functionality is top-notch