Eu desenhei alguns esboços
Introdução
-
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 connectToHost
significa: conecte-se com ssh aconnectToHost
e encaminhe todas as tentativas de conexão para o localsourcePort
para a portaonPort
na máquina chamadaforwardToHost
, que pode ser alcançado a partir da máquinaconnectToHost
. -
remoto:
-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 connectToHost
significa: conecte-se com ssh aconnectToHost
e encaminhe todas as tentativas de conexão para o remotosourcePort
para a portaonPort
na máquina chamadaforwardToHost
, que pode ser alcançado a partir de sua máquina local.
Exemplos
Exemplo para 1
ssh -L 80:localhost:80 SUPERSERVER
Você especifica que uma conexão feita à porta local 80 deve ser encaminhada para a porta 80 no SUPERSERVER. Isso significa que se alguém se conecta ao seu computador com um navegador, ele recebe a resposta do servidor rodando no SUPERSERVER. Você, na sua máquina local, não tem nenhum servidor web em execução.
Exemplo para 2
ssh -R 80:localhost:80 tinyserver
Você especifica que uma conexão feita à porta 80 do tinyserver deve ser encaminhada para a porta 80 em sua máquina local. Isso significa que, se alguém se conectar ao servidor pequeno e lento com um navegador, ele obtém a resposta do servidor da web em execução na sua máquina local. O tinyserver, que não possui espaço suficiente em disco para o grande site, não possui nenhum servidor web em execução. Mas as pessoas se conectando ao tinyserver pensam assim.
Mais exemplos
Outras coisas podem ser: A máquina poderosa tem cinco servidores Web em cinco portas diferentes. Se um usuário se conecta a um dos cinco tinyservers na porta 80 com seu navegador, a solicitação é redirecionada para o servidor correspondente em execução na máquina poderosa. Isso seria
ssh -R 80:localhost:30180 tinyserver1
ssh -R 80:localhost:30280 tinyserver2
etc.
Ou talvez sua máquina seja apenas a conexão entre os servidores poderosos e pequenos. Então seria (para um dos tinyservers que jogam ter seus próprios servidores web):
ssh -R 80:SUPERSERVER:30180 tinyserver1
ssh -R 80:SUPERSERVER:30280 tinyserver2
etc