pwnat es una herramienta de código abierto que supuestamente soluciona este problema. Dice:
pwnat es una herramienta que permite que cualquier cantidad de clientes detrás de NAT se comuniquen con un servidor detrás de un NAT separado con no redirección de puertos y no Configuración de DMZ en cualquier enrutador para comunicarse directamente entre sí. El servidor no necesita saber nada acerca de los clientes que intentan conectarse.
No hay intermediarios, proxy, terceros, no se requiere UPnP/STUN/ICE, suplantación de identidad ni trucos de DNS.
Más importante aún, el cliente puede conectarse a cualquier host o puerto en cualquier host remoto o a un host y puerto fijos que decida el servidor.
pwnat establece este tipo de conexión:
Máquina A (IP:192.168.1.3) -> NAT A (IP:122.x.x.x) -> Internet ->NAT B (IP:59.x.x.x) -> Máquina B (192.168.2.10)
pwnat se distribuye solo para Linux, pero el artículo PWNAT:Windows Complied Version contiene la versión de Windows. Ver también, por el mismo autor PWNAT:Ejemplo.
El método utilizado por pwnat es increíblemente inteligente, pero no hay garantía de que funcione con su entorno.
Personalmente, creo que la tunelización es su mejor opción, aunque aún no tenga un tercer servidor.
Amazon EC2 ofrece una opción de precios de capa gratuita que permite a los nuevos clientes ejecutar una microinstancia de Linux/Windows hasta 750 horas al mes, gratis, durante un año. Yo mismo no he usado el servicio, pero asumo que si solo ejecuta el servidor virtual cuando es necesario, obtiene un túnel SSH en funcionamiento de forma gratuita. ¿Incluso podría encontrar el servicio lo suficientemente barato como para justificar el pago?
Hak5 produjo una buena introducción a los túneles (con persistencia). También puede configurar un script activado por CRON para intentar conexiones con el servidor virtual para que tenga acceso a la computadora portátil a los pocos minutos de iniciar la instancia EC2...
La mejor opción sería configurar el reenvío de puertos si puede, pero si su campus hace el firewall y usted no puede hacer ningún reenvío de puertos, use esta sugerencia.
Sí, hay un tercer servidor gratuito y ya lo está utilizando, TeamViewer. Asegúrese de tener TeamViewer instalado como servicio (o el equivalente para Linux, yo solo uso la versión de Windows). Luego instale el controlador VPN en el trabajo y en casa. Luego podrá conectarse usando una VPN desde el trabajo y su máquina doméstica tendrá una dirección IP 7.x.x.x. Luego, si desea ingresar a una sesión de terminal, ejecute SSH a través del enlace VPN.
La opción de instalación de VPN se encuentra en la configuración avanzada.
Eso agregará una opción "VPN" para los tipos de conexiones que puede hacer.