J'ai dessiné quelques croquis
La machine sur laquelle la commande ssh tunnel est saisie est appelée «votre hôte» .


introduction
local: -L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
ssh -L sourcePort:forwardToHost:onPort connectToHostsignifie: connectez-vous avec ssh à connectToHost, et transférez toutes les tentatives de connexion au port local sur la machine appelée , accessible depuis la machine.sourcePortonPortforwardToHostconnectToHost
éloigné: -R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.
ssh -R sourcePort:forwardToHost:onPort connectToHostsignifie: connectez-vous avec ssh à connectToHostet transférez toutes les tentatives de connexion au port distant sourcePort vers onPortsur la machine appelée forwardToHost, accessible depuis votre machine locale.
Votre exemple
Eh bien, si vous souhaitez uniquement faire fonctionner le transfert X, c'est-à-dire exécuter certaines applications X sur l'ordinateur à la maison et les afficher sur un système distant (appelons-le un ordinateur de travail, car il peut être sur votre lieu de travail), alors vous pouvez pas besoin du tout d'un tunnel ssh.
Démarrer des applications X sans tunnel
Pouvez-vous simplement passer de l'ordinateur de travail à votre ordinateur personnel? Si c'est le cas, lorsque vous êtes assis sur l'ordinateur de travail et que vous souhaitez démarrer une application X qui s'exécute sur votre ordinateur personnel mais s'affiche sur votre ordinateur de travail , vous devez taper (sur l'ordinateur de travail):
ssh -X homeuser @ homecomputer firefox
Cela démarrera Firefox sur votre ordinateur personnel et l'affichera sur la machine où vous avez tapé cette commande, par exemple votre ordinateur de travail.
L'ordinateur caché a besoin d'un tunnel
Ceci est l' image numéro 3 de mes croquis. Plusieurs fois, l'ordinateur domestique n'est pas accessible directement depuis Internet, car il est derrière un pare-feu ou caché via NAT (à partir d'un routeur). Ensuite, vous pouvez utiliser un tunnel.
Sur votre ordinateur personnel bleu ( yourhost), vous tapez:
ssh -R 5555:localhost:22 remoteuser@remotehost
où 5555est le port vert et 22ist le port rose dans l'image.
Si vous êtes maintenant au travail, sur le remotehost, et que vous vous connectez au port vert 5555, votre connexion est tunnelée / transmise au port rose de votre ordinateur personnel localhost(c'est-à-dire votre ordinateur domestique bleu lui-même). Vous devez maintenant taper sur votre ordinateur de travail:
ssh -X -p 5555 homeuser@localhost firefox
qui démarrera Firefox sur votre ordinateur personnel ( yourhost) et l'affichera sur la machine sur laquelle vous avez tapé cette commande, par exemple votre ordinateur professionnel ( remotehost).