Eu desenhei alguns esboços
A máquina em que o comando ssh tunnel é digitado (ou no seu caso: Putty com tunelamento é iniciada) é chamada »seu host« .
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: conectar com ssh ae connectToHost
encaminhar todas as tentativas de conexão para o local sourcePort
a porta onPort
na máquina chamada forwardToHost
, que pode ser acessada a partir da connectToHost
máquina.
controlo 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 connectToHost
e encaminhar todas as tentativas de conexão para o controle remoto sourcePort
na porta onPort
da máquina chamada forwardToHost
, que pode ser acessada a partir da sua máquina local.
Seu exemplo
A primeira imagem representa sua situação. A caixa azul chamada your host
é a sua máquina Windows a partir da qual você inicia o Putty no servidor Ubuntu, chamado remotehost
na minha imagem. Conexões à porta verde (no seu número de porta caso 4000
) são encaminhadas para a porta MySQL rosa 3306
do localhost
da sua máquina servidor Ubuntu (ou seja, o servidor Ubuntu em si).
Para configurá-lo com o Putty
Inicie o Putty e insira as configurações de conexão usuais (nome do host ou endereço IP). Na árvore do lado esquerdo, navegue até
Conexão → SSH → Túneis
e crie um novo túnel local com a porta de origem 4000
(123 na imagem) e o destino localhost:3306
(localhost: 456 na imagem).
Não se esqueça de clicar em Adicionar .
Em seguida, volte à sessão e clique em Salvar para manter suas configurações para a próxima vez. Agora você pode usar a conexão salva para efetuar login no seu servidor e depois de efetuar login com êxito, toda vez que se conectar à porta 4000 em seu host, você realmente se conectará à porta 3306 no servidor Ubuntu.
A resposta simples é sim, mas observe que o túnel é realmente iniciado no seu computador. A maneira como funciona é que você cria uma conexão SSH com o servidor (que é seguro) e instrui o SSH a ouvir uma porta do seu lado e encaminhar quaisquer conexões que entrarem - para uma porta específica em um endereço de host específico no servidor. lado do servidor. O destino do túnel não precisa ser o mesmo servidor - pode ser qualquer outro endereço válido, que - no caso de não ser o servidor que executa o próprio servidor SSH - verá a conexão de entrada como se tivesse vindo do servidor SSH em vez de do seu cliente.
Para configurá-lo, abra a caixa de diálogo Configuração do Putty, selecione a configuração da conexão que você normalmente usa para acessar o servidor e clique em "carregar" (e não em "abrir"). Em seguida, na árvore do lado esquerdo, navegue até Connection-> SSH-> Tunnels e crie um novo túnel "local" com a porta de origem 4000 e o destino "localhost: 3306" (porque o endereço de destino foi resolvido no servidor, do ponto de vista do servidor, a porta MySQL está no host local). Em seguida, volte para "sessão" e clique em "Salvar" para manter suas configurações para a próxima vez. Agora você pode usar a conexão salva para efetuar login no servidor e depois de efetuar login com êxito, toda vez que se conectar à porta 4000 no seu computador, você realmente se conectará à porta 3306 no servidor.
Se você gosta muito de túneis e está executando um cliente MS-Windows, sugiro examinar o Putty Tunnel Manager, que usa o Putty para configurar e executar túneis facilmente, sem a necessidade de ter um console de putty aberto.
fonte