web-dev-qa-db-fra.com

Comment tunneliser le trafic d'une machine à une autre?

J'ai un serveur, qui peut être vu de l'extérieur de mon petit réseau, le serveur a un nom de domaine et autres. Et j'ai une machine locale, qui peut être vue par le serveur, mais n'est pas accessible de l'extérieur.

Je veux donc pouvoir me connecter au port du serveur, mais parler à ma machine locale à la place.

Puis-je faire en sorte que le trafic arrivant sur un port du serveur soit relayé vers un autre port de ma machine locale?

4
Rogach

Pour ce faire, vous pouvez simplement utiliser openssh: https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding

Les commandes à rechercher sont -L ou -R.

Supposons que vous souhaitiez transférer le port 4444 du serveur vers le port 5555 de la machine locale. Sur l'utilisation du serveur

ssh -L 4444:local_machine_name:5555 user@local_machine_name 

ou sur l'utilisation de la machine locale

ssh -R 4444:localhost:5555 user@server_machine_name 

(Dans le premier exemple, vous pouvez vous connecter à n'importe quelle autre machine, pas besoin de vous connecter à local_machine_name, vous pouvez simplement utiliser localhost pour vous connecter au serveur lui-même).

Une autre manière plus complexe consiste à utiliser le serveur comme routeur. Voir https://help.ubuntu.com/community/Router et surtout https://help.ubuntu.com/community/Router#Enable_IP_forwarding_and_Masquerading . C'est ce que font la plupart des petits routeurs câblés ou DSL domestiques.

5
Thomas

Ceci est possible en utilisant iptables. Il y a un Nice howto sur linuxhomenetworking.com et plus d'informations sur iptables peuvent être trouvées sur le buntu wiki . Notez qu'il existe également une interface graphique pour iptables appelée Firestarter .

3
johanvdw