Eu desenhei alguns esboços
A máquina em que o comando ssh tunnel é digitado chama-se »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 connectToHostsignifica: conecte-se com ssh aconnectToHoste encaminhe todas as tentativas de conexão para o localsourcePortpara a portaonPortna máquina chamadaforwardToHost, que pode ser alcançado a partir da máquinaconnectToHost. -
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 connectToHostsignifica: conecte-se com ssh aconnectToHoste encaminhe todas as tentativas de conexão para o remotosourcePortpara a portaonPortna máquina chamadaforwardToHost, que pode ser alcançado a partir de sua máquina local.
Opções adicionais
-
-fdiz ao ssh para se autenticar depois de autenticar, então você não precisa ficar sentado rodando alguma coisa no servidor remoto para o túnel permanecer vivo. -
-Ndiz que você deseja uma conexão SSH, mas na verdade não quer executar comandos remotos. Se tudo o que você está criando é um túnel, a inclusão dessa opção economiza recursos. -
-Tdesativa a alocação pseudo-tty, que é apropriada porque você não está tentando criar um shell interativo.
Seu exemplo
A primeira imagem representa seu caso. Se você fizer
ssh -L 1081:localhost:3306 remotehost
todas as tentativas de conexão à porta verde 1081 são encaminhadas pelo túnel ssh para a porta cor-de-rosa 3306 no host local do remotehost, ou seja, o próprio host remoto.
Agora seus scripts php podem acessar seu banco de dados via localhost:1081 . Mas o comando netstat no seu remotehost não consegue encontrar nada em 1081 (pelo menos não como resultado do túnel).
Porque a porta rosa não é uma porta de escuta criada pelo ssh, mas o destino do encaminhamento. E não está encaminhando para a porta 1081 , mas para 3306 .
O seu servidor db está realmente escutando na porta 3306 ou possivelmente na porta 1081 ? Se o último for verdadeiro, seu comando deve ser alterado para ficar assim:
ssh -L 1081:localhost:1081 remotehost
Se o seu banco de dados atende na porta 1081 , você deve encontrá-lo com o netstat (independentemente do ssh).
Espero que isso ajude a esclarecer a confusão.