O que é o encaminhamento de porta ssh e qual é a diferença entre o encaminhamento de porta ssh local e remota [duplicado]

119

Eu me sinto confuso sobre o encaminhamento de porta ssh e a diferença entre o encaminhamento de porta ssh local e remota. Você poderia, por favor, explicá-los em detalhes e com exemplos? Obrigado!

    
por user2886717 19.02.2014 / 14:14

2 respostas

338

Eu desenhei alguns esboços

Introdução

  1. 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 a connectToHost e encaminhe todas as tentativas de conexão para o local sourcePort para a porta onPort na máquina chamada forwardToHost , que pode ser alcançado a partir da máquina connectToHost .

  2. 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 a connectToHost e encaminhe todas as tentativas de conexão para o remoto sourcePort para a porta onPort na máquina chamada forwardToHost , 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
    
por 19.02.2014 / 14:56
7

Encaminhamento de porta local

ssh cria uma porta local adicional que será encaminhada para uma porta no sistema remoto.

exemplo

ssh -L 8080:127.0.0.1:80 user@webserver

Em seguida, no seu navegador, use a URL local http://localhost:8080/

ele se conectará à porta 8080 das máquinas locais, que o ssh encaminhará para o ssh remoto, e fará uma solicitação para 127.0.0.1:80 . Nota 127.0.0.1 é realmente o host local do servidor remoto, mas poderia ter sido um host / IP disponível na rede da máquina remota.

Reencaminhamento remoto

Solicita ao ssh que crie uma porta de escuta na máquina remota, a qual ele irá redirecionar (Reverse) para o ssh local para seguir adiante.

ssh -R 10123:127.0.0.1:123 user@webserver

Então, depois que o ssh se conecta ao webserver, o ssh remoto cria e lsitens em uma porta 10123. Um processo no webserver se conectando ao 10123, ssh irá buscá-lo e enviá-lo de volta ao ssh da máquina local, que o envia para 127.0.01: 123 port.

    
por 19.02.2014 / 15:02