I have a computer (I own) behind a firewall I do not. I am trying to VNC/SSH/Remote Desktop/Whatever into it from outside that firewall. The firewall blocks all inbound traffic, but no outbound traffic, so the premise of my question is, is there any kind of push-based remote program or protocol such that instead of listening for inbound connections, the machine behind the firewall pushes content to an outside machine and is accessed and controlled that way?
The main way to do this is to have a VPN (Virtual Private Network) running between your PC and the other PC. This then encapsulates whatever you're trying to send into a TCP packet (so you could actually route IPX over a VPN if you really wanted) and sends it through the firewall, encrypted, so that nobody can read it.
Essentially it's like running a super really really long network cable using the internet (and with all the foibles that that introduces).
The easiest way to do this is with a piece of software called Hamachi. You install Hamachi at both ends, join them both to the same network, and it will try and tunnel its way through the internet and the firewalls to create a seamless, stateful connection between the two PCs.
If it can't create a nice connection, it will act as a man-in-the-middle, transferring your data for you. On the free editions, this relaying is slow, but a paid subscription will greatly increase the throughput.
If you can't even get to their man-in-the-middle server, well then you're stuffed.
|show 1 more comment|
Perhaps you can use a reverse tunnel with SSH.
set up the vnc server in the normal way:
inside% vncserver :16
make a reverse tunnel to the host where we want to run the viewer:
inside% ssh -R5917:localhost:5916 user@outside
now on the outside...
outside% vncviewer :17