pwnat est un outil open source censé résoudre ce problème. Il dit :
pwnat est un outil qui permet à n'importe quel nombre de clients derrière des NAT de communiquer avec un serveur derrière un NAT séparé avec non redirection de port et non Configuration DMZ sur tous les routeurs afin de communiquer directement entre eux. Le serveur n'a pas besoin de savoir quoi que ce soit sur les clients essayant de se connecter.
Il n'y a pas d'intermédiaire, pas de proxy, pas de tiers, pas d'UPnP/STUN/ICE requis, pas d'usurpation d'identité et pas d'astuces DNS.
Plus important encore, le client peut alors se connecter à n'importe quel hôte ou port sur n'importe quel hôte distant ou à un hôte et un port fixes décidés par le serveur.
pwnat établit ce type de connexion :
Machine A (IP :192.168.1.3) -> NAT A (IP :122.x.x.x) -> Internet -> NAT B (IP :59.x.x.x) -> Machine B (192.168.2.10)
pwnat est distribué uniquement pour Linux, mais l'article PWNAT :Windows Complied Version contient la version Windows. Voir aussi, du même auteur PWNAT :Example.
La méthode utilisée par pwnat est incroyablement intelligente, mais il n'y a aucune garantie qu'elle fonctionnera avec votre environnement.
Personnellement, je pense que le tunneling est votre meilleure option, même si vous ne possédez pas déjà un troisième serveur.
Amazon EC2 propose une option de tarification Free Tier permettant aux nouveaux clients d'exécuter une micro-instance de Linux/Windows jusqu'à 750 heures/mois, gratuitement, pendant un an. Je n'ai pas utilisé le service moi-même, mais je suppose que si vous n'exécutez le serveur virtuel qu'en cas de besoin, vous obtenez un tunnel SSH opérationnel gratuitement. Vous pourriez même trouver le service assez bon marché pour justifier le paiement ?
Hak5 a produit une bonne introduction au tunneling (avec persistance). Vous pouvez également configurer un script déclenché par CRON pour tenter de vous connecter au serveur virtuel afin d'avoir accès à l'ordinateur portable quelques minutes après le démarrage de l'instance EC2...
La meilleure option serait de configurer la redirection de port si vous le pouvez, mais si votre campus fait le pare-feu et que vous ne pouvez pas faire de redirection de port vous-même, utilisez cette suggestion.
Oui, il existe un 3ème serveur gratuit, et vous l'utilisez déjà, TeamViewer. Assurez-vous que TeamViewer est installé en tant que service (ou quel que soit l'équivalent pour Linux, je n'utilise que la version Windows). Installez ensuite le pilote VPN au travail et à la maison. Vous pourrez alors vous connecter en utilisant un VPN depuis le travail et votre ordinateur personnel aura une adresse IP 7.x.x.x. Ensuite, si vous souhaitez accéder à une session de terminal, exécutez SSH sur le lien VPN.
L'option d'installation du VPN se trouve dans les paramètres avancés.
Cela ajoutera une option "VPN" pour les types de connexions que vous pouvez faire.