Estou tentando entender a diferença entre "encaminhamento de porta local" e "encaminhamento de porta dinâmico".
No comando ssh para "encaminhamento de porta local", é sempre necessário especificar o host de destino?
"Dinâmico" em "encaminhamento de porta dinâmico" significa que, no comando ssh para "encaminhamento de porta dinâmico", não há necessidade de especificar o host de destino? se sim, quando o destino é especificado?
ssh
port-forwarding
Tim
fonte
fonte
Respostas:
Sim, você deve especificar um IP e uma porta de destino ao usar o encaminhamento local. De
man ssh
:Claramente, apenas o endereço de ligação é opcional.
Não, você não pode especificar um host ou porta de destino ao usar o encaminhamento dinâmico. No encaminhamento dinâmico, o SSH atua como um proxy SOCKS. Novamente da página de manual (ênfase minha):
Com
-L
, o SSH não tenta entender o tráfego. Apenas envia tudo o que recebe na porta local para a porta de destino - você determina a porta de destino no momento em que a conexão é feita. Com-D
, o SSH atua como um servidor proxy e, portanto, pode manipular conexões de várias portas (por exemplo, um navegador configurado para usá-lo como um proxy SOCKS pode acessar HTTP, HTTPS, FTP etc. na mesma conexão). E, como em outros servidores proxy, ele usará o tráfego para determinar o destino.fonte
-D
, ele tem que, a fim de compreender para onde enviar os dados.Outra maneira de aprender esse conceito seria examinar como um cliente se conecta ao cluster de redução elástica de mapas (EMR) da amazon. O EMR possui vários aplicativos locais expostos e esses são normalmente acessados por túneis SSH.
Existem 2 opções para um cliente: A) Comando SSH de encaminhamento de porta local: ssh -i key.pem -L 8157: abcd: 8088 hadoop @ abcd
Aqui, o cliente diz, por exemplo, que 8157 no host local é encaminhado para abcd: 8088 O cliente precisa fazer uma solicitação ao host local: http: // localhost: 8157 Outros aplicativos podem estar ouvindo em portas como 8089.8090 e O cliente precisa fazer conexões ssh para cada uma delas.
B) Encaminhamento dinâmico de porta Aqui, um único comando SSH é usado: ssh -i key.pem -D 8157 hadoop @ abcd
Qualquer tráfego que entra na porta 8157 será roteado através do túnel ssh. O destino do tráfego será o destino do URL. Por exemplo, você pode usar um cliente proxy no servidor da Web e redirecionar alguns URIs http para usar o proxy. Você pode acessar todos os seus aplicativos no 8089.8090 por meio de um único comando.
Para referência, consulte este documento: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-web-interfaces.html
fonte