O problema que tenho é tentar entender o uso do encaminhamento de porta com o comando ssh conforme mostrado abaixo. A confusão é baseada no uso de localhost onde minha máquina é localhost, mas parece que pode estar referenciando o servidor remoto. Por causa disso, não está claro o que está acontecendo e, portanto, estou procurando informações e / ou links para documentos que possam esclarecer o que está ocorrendo no comando ssh abaixo.
ssh -f myUserID@someip -L [bind_address:]port:host:hostport
- Os detalhes acima foram retirados de um manual: Especifica que a porta fornecida no host local (cliente) deve ser encaminhada para o host e a porta fornecidos no lado remoto.
Com relação ao comando ssh, disseram-me que o lado esquerdo é considerado o local (cliente).
Assim, com uma sintaxe do seguinte
ssh -f myUserID@someip -L 1234:localhost:9200
onde o lado esquerdo não contém um IP, o host local deve estar na porta 1234?
E não tenho ideia de como interpretar a 2ª metade de localhost:9200?
Como devo interpretar o comando ssh acima?
[bind_address:]port:host:hostport Especifica que a porta fornecida no host local (cliente) deve ser encaminhada para o host e a porta fornecidos no lado remoto. Isso funciona alocando um soquete para ouvir a porta no lado local, opcionalmente vinculado ao bind_address especificado. Sempre que uma conexão é feita a esta porta, a conexão é encaminhada pelo canal seguro e uma conexão é feita à porta do host hostport da máquina remota. Os encaminhamentos de porta também podem ser especificados no arquivo de configuração. Os endereços IPv6 podem ser especificados com uma sintaxe alternativa: [bind_address/]port/host/hostport ou colocando o endereço entre colchetes. Somente o superusuário pode encaminhar portas privilegiadas. Por padrão, a porta local é vinculada de acordo com a configuração GatewayPorts. No entanto, um bind_address explÃcito pode ser usado para vincular a conexão a um endereço especÃfico. O bind_address de ''localhost'' indica que a porta de escuta deve ser vinculada apenas para uso local, enquanto um endereço vazio ou '*' indica que a porta deve estar disponÃvel em todas as interfaces.
Preciso de clareza sobre o formato que estou postando. Porque a maneira como a definição é lida e a maneira como o comando é que estou postando parece que estou encaminhando uma porta localhost 1234 para o localhost 9200, o que não faz sentido em como está permitindo que eu me comunique com o servidor remoto .
-L1234:localhost:9200
-L
: realiza o encaminhamento local (encaminhamento do cliente local para o remoto)1234
: escuta em tcp/1234 na máquina local; aquele a partir do qual você está executandossh
localhost:9200
: o destino para o qual encaminhar o tráfego. O destino é descrito da perspectiva da máquina de destino ("someip
" no seu exemplo). Entãolocalhost
aqui significasomeip
, e9200
significa tcp/9200 naquela máquina remota.Sua máquina local aceitará conexões na porta 1234 e encapsulará esse tráfego para a porta 9200 no host remoto.
Observe que o destino pode ser qualquer máquina acessÃvel a partir do controle remoto, não apenas
localhost
da perspectiva do controle remoto. Portanto, se você quiser encaminhar a porta para uma máquina acessÃvel,someip
mas não (diretamente) de sua máquina local, poderá usar um argumento comoEu apenas pesquisei rapidamente e encontrei isso ...
https://www.howtogeek.com/168145/how-to-use-ssh-tunneling/
Por favor, leia isto e vá para a parte:
"Encaminhamento de porta remota: torne os recursos locais acessÃveis em um sistema remoto"
Isso é exatamente o que seu comando está fazendo.
Talvez pesquise um pouco mais na próxima vez. Tudo o que eu tinha que colocar na caixa de pesquisa era ssh "-L" para que as respostas com -L voltassem.
Cumprimentos
prumo