Ho disegnato alcuni schizzi
La macchina, in cui viene digitato il comando ssh tunnel, è chiamata "host" .


introduzione
Locale: -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 connectToHostsignifica: connettersi con ssh a connectToHost, e inoltrare tutti i tentativi di connessione alla porta locale sulla macchina chiamata , che può essere raggiunta dalla macchina.sourcePortonPortforwardToHostconnectToHost
a distanza: -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 connectToHostsignifica: connettiti con ssh a connectToHost, e inoltra tutti i tentativi di connessione al telecomando sourcePort per port onPortsulla macchina chiamata forwardToHost, che può essere raggiunta dalla tua macchina locale.
Il tuo esempio
Bene, se desideri solo far funzionare l'inoltro X, ad esempio eseguire alcune applicazioni X sul computer a casa e visualizzarle su un sistema remoto (chiamiamolo computer di lavoro, perché potrebbe essere sul posto di lavoro), allora potresti non serve affatto un tunnel ssh.
Avvia le applicazioni X senza tunnel
Puoi semplicemente ssh dal computer di lavoro al tuo computer di casa? In tal caso, quando si è seduti sul computer di lavoro e si desidera avviare un'applicazione X in esecuzione sul computer di casa ma visualizzata sul computer di lavoro , è necessario digitare (sul computer di lavoro):
ssh -X homeuser @ homecomputer firefox
Questo avvierà Firefox sul tuo computer di casa e lo visualizzerà sul computer in cui hai digitato questo comando, ad esempio il tuo computer di lavoro.
Il computer nascosto ha bisogno del tunnel
Questa è l' immagine numero 3 dei miei schizzi. Molte volte il computer di casa non è raggiungibile direttamente da Internet, perché è protetto da un firewall o nascosto attraverso NAT (da un router). Quindi puoi usare un tunnel.
Sul tuo computer di casa blu ( yourhost) digiti:
ssh -R 5555:localhost:22 remoteuser@remotehost
dov'è 5555la porta verde ed 22è la porta rosa nell'immagine.
Se ora sei al lavoro, a remotehost, e ti connetti alla porta verde 5555, la tua connessione viene incanalata / inoltrata alla porta rosa del tuo computer di casa localhost(cioè il tuo computer di casa blu stesso). Ora devi digitare sul tuo computer di lavoro:
ssh -X -p 5555 homeuser@localhost firefox
che avvierà firefox sul tuo computer di casa ( yourhost) e lo visualizzerà sul computer in cui hai digitato questo comando, ad esempio il tuo computer di lavoro ( remotehost).