TightVNC contains a good server and client.
x11vnc contains a good server that allows you to access your already running session. You can set a new password with
x11vnc -storepasswd or
TightVNC contains a good client.
About routers and firewalls
The server is behind a router or firewall:
if the client is not behind a router or firewall: the server invites the client (“vncviewer -listen” for the client, “Add new client” for the server in TightVNC)
if you can open the port 5900 (or another one you prefer): open it
if you can access in ssh to the server, or to another machine on the same network: create a ssh tunnel
The client is also behind a router or firewall:
but some ports are open, use invitations listening on an open port (need to be root if < 1024). With Linux::TightVNC, use modulo 2^16 to specify a port lower than 5500 (eg “vncviewer -listen 60058” for port 22), and “hostname::22” syntax for server invitation.
if you can access in ssh to another machine on the same network: create a ssh tunnel to send the invitation
if you can access in ssh to another machine on which you can open ports, create a remote ssh tunnel (
If your ssh is completely blocked, and you control another machine somewhere, open an ssh server on port 80 or 443…