This is a quick note, documenting a quick successful test on Reverse VNC connections.
Unlike regular VNC connections, in which you connect to the controllable PC, in a Reverse VNC connection the controllable PC will connect to you. The control is in the same direction, but the connection is reversed.
What’s the benefit? Not having to worry about the network status and addresses of the remote PC. It is usually easier to initiate connections than to receive. This lets the guy with better network understanding to be the listener and the poor soul to be the initiator. This will put the network worries near to the tech support guy, where it should be for this particular scenario. Also, as with the current state of IPv4, full of the evil but necessary NAT, you will not have to worry about router NAT / port forwarding configuration in the remote router.
The test setup consisted on my desktop workstation running Ubuntu and my laptop running Windows, both on the same Ethernet broadcast domain. No gateway was involved in the test.
The desktop workstation had the following characteristics:
- Operating System: Ubuntu Lucid Lynx (10.04).
- VNC package: xvnc4viewer 4.1.1+xorg4.3.0-37ubuntu2.
- Role: Controlling computer (VNC client). In real life here is where I would sit and control other computers.
- IP address: 192.0.2.10 (this is a fake, RFC 5735 documentation address).
The laptop had the following characteristics:
- Operating System: Microsoft Windows XP SP3.
- VNC package: TightVNC 1.3.10, installed from the OpenDisc software collection.
- Role: Controlled computer (VNC server). In real life this would be the PC receiving remote tech support from me.
- IP address: 192.0.2.20 (this is a fake, RFC 5735 documentation address).
Steps performed to establish the connection
On the desktop workstation (the VNC client, controlling computer):
- Opened a terminal
- You should get a message like “main: Listening on port 5500”
On the laptop (the VNC server, controlled computer):
- Went to Start » All Programs » TightVNC and ran Launch TightVNC Server
- If the Properties window pops up, disable “Accept socket connections” and click OK (just for security reasons).
- Right click on the system tray TightVNC Server icon and choose Add New Client…
- Enter the IP address of the desktop workstation, in this example,
192.0.2.10and click OK or hit Enter.
- The test was done with the Windows Firewall enabled. You might get a message like To help protect your computer, Windows Firewall blocked some of this program features. | The computer administrator may unblock this program for: TightVNC Win32 Server when running the Tight VNC Server. You may safely click “OK” because you will initiate connections and not listen for a connection. This message gets inhibited by disabling Accept socket connections in the Properties window.
- The test was repeated using a restricted Windows account, with a successful result. This gives you a lot of flexibility. You might even try making a portable TightVNC server by following the Step 2 from the instructions on this VNC document from the TinyApps.Org blog
- Depending on the available bandwidth and latency, it might be necessary to tweak the server on the Properties window.
- I noticed a somewhat long delay on the first connection attempt, in one case even leading to a connection failing. On the second try it worked fine. I would guess this has to do with DNS resolving delays and caching, but it’s just speculation.
Comments welcome. If you have instructions for the same scenario on different platforms, post it on your blog and link it from a comment, or write it directly on a comment.