pwnat è uno strumento open source che presumibilmente risolve questo problema. Dice :
pwnat è uno strumento che consente a qualsiasi numero di client dietro NAT di comunicare con un server dietro un NAT separato con no port forwarding e no Configurazione DMZ su qualsiasi router per comunicare direttamente tra loro. Il server non ha bisogno di sapere nulla sui client che tentano di connettersi.
Non ci sono intermediari, proxy, terze parti, UPnP/STUN/ICE richiesti, spoofing e trucchi DNS.
Ancora più importante, il client può quindi connettersi a qualsiasi host o porta su qualsiasi host remoto o a un host e porta fissi decisi dal server.
pwnat stabilisce questo tipo di connessione :
Macchina A (IP:192.168.1.3) -> NAT A (IP:122.x.x.x) -> Internet ->NAT B (IP:59.x.x.x) -> Macchina B (192.168.2.10)
pwnat è distribuito solo per Linux, ma l'articolo PWNAT:Windows Complied Version contiene la versione per Windows. Vedi anche, dello stesso autore PWNAT :Example.
Il metodo usato da pwnat è incredibilmente intelligente, ma non c'è alcuna garanzia che funzioni con il tuo ambiente.
Personalmente penso che il tunneling sia la tua migliore opzione, anche se non possiedi già un terzo server.
Amazon EC2 offre un'opzione di prezzo del piano gratuito che consente ai nuovi clienti di eseguire una micro istanza di Linux/Windows per un massimo di 750 ore al mese, gratuitamente, per un anno. Non ho utilizzato il servizio da solo, ma presumo che se esegui il server virtuale solo quando necessario, ottieni un tunnel SSH attivo e funzionante gratuitamente. Potresti persino trovare il servizio abbastanza economico da giustificare il pagamento?
Hak5 ha prodotto una buona introduzione al tunneling (con persistenza). Puoi anche configurare uno script attivato da CRON per tentare le connessioni al server virtuale in modo da avere accesso al laptop entro pochi minuti dall'avvio dell'istanza EC2...
L'opzione migliore sarebbe impostare il port forwarding, se possibile, ma se il tuo campus esegue il firewall e non puoi eseguire tu stesso alcun port forwarding, utilizza questo suggerimento.
Sì, esiste un terzo server gratuito e lo stai già utilizzando, TeamViewer. Assicurati di avere TeamViewer installato come servizio (o qualunque sia l'equivalente per Linux, io uso solo la versione di Windows). Quindi installa il driver VPN al lavoro ea casa. Sarai quindi in grado di connetterti utilizzando una VPN dal lavoro e la tua macchina di casa avrà un indirizzo IP 7.x.x.x. Quindi, se vuoi accedere a una sessione terminale, esegui SSH tramite il collegamento VPN.
L'opzione di installazione VPN si trova nelle impostazioni avanzate.
Ciò aggiungerà un'opzione "VPN" per i tipi di connessioni che puoi fare.