desenv-web-rp.com

O que é o encaminhamento de porta ssh e qual a diferença entre o encaminhamento de porta local e remoto ssh

Sinto-me confuso com o encaminhamento de porta ssh e a diferença entre o encaminhamento de porta local e remoto ssh. Você poderia explicá-los em detalhes e com exemplos? Obrigado!

199
user2886717

Eu desenhei alguns esboços

ssh tunnel starting from local


ssh tunnel starting from remote

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: conectar com ssh a connectToHost e encaminhar todas as tentativas de conexão para o localsourcePort para a porta onPort no máquina chamada forwardToHost, que pode ser acessada 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: conectar com ssh a connectToHost e encaminhar todas as tentativas de conexão para o remotosourcePort para a porta onPort no máquina chamada forwardToHost, que pode ser acessada na sua máquina local.

Exemplos

Exemplo para 1

ssh -L 80:localhost:80 SUPERSERVER

Você especifica que uma conexão estabelecida com a porta 80 local deve ser encaminhada para a porta 80 em SUPERSERVER. Isso significa que se alguém se conectar ao seu computador com um navegador da Web, ele obtém a resposta do servidor da Web em execução no SUPERSERVER. Você, na sua máquina local, não tem servidor da 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 da web, 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 em disco suficiente para o grande site, não possui um servidor em execução. Mas as pessoas que se conectam ao tinyserver pensam assim.

Mais exemplos

Outras coisas podem ser: A máquina poderosa possui cinco servidores da Web em execução em cinco portas diferentes. Se um usuário se conectar a um dos cinco tinyservers na porta 80 com seu navegador da web, a solicitação será redirecionada para o servidor da web 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 poderosos e os pequenos servidores. Então seria (para um dos tinyservers que jogam para ter seus próprios servidores da web):

ssh -R 80:SUPERSERVER:30180 tinyserver1
ssh -R 80:SUPERSERVER:30280 tinyserver2
etc
519
erik

Encaminhamento de porta local

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

exemplo

ssh -L 8080:127.0.0.1:80 [email protected]

Em seguida, no navegador, use o URL de uso 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.

Encaminhamento remoto

Solicita ao ssh que crie uma porta de escuta na máquina remota que será encaminhada de volta (Reverse) para o ssh local para encaminhar.

ssh -R 10123:127.0.0.1:123 [email protected]

Portanto, depois que o ssh se conectar ao servidor da web, o ssh remoto cria e lsitens na porta 10123. Um processo no servidor da web que se conecta ao 10123, o ssh o coleta e o envia de volta ao ssh da máquina local, que o envia para 127.0.01 : Porta 123.

14
X Tian