Túnel SSH para PostgreSQL: conecte-se sem abrir a porta 5432

Publicado em 2026-10-26 por frfrand

Acesso remoto seguro ao Postgres via ssh -L em um VPS

Túnel SSH para PostgreSQL: conecte-se sem abrir a porta 5432

Quer abrir PostgreSQL desde DBeaver no seu laptop, mas o banco roda em um VPS e não deveria ouvir na Internet. Um túnel SSH encaminha uma porta local para o servidor sem abrir publicamente o 5432 do PostgreSQL.

Vamos transformar isso em um procedimento que você pode usar em um VPS real. O objetivo é entender por que funciona, como testar e qual problema aparece se alguma parte estiver mal configurada.

O que significa Túnel SSH para PostgreSQL e quando você precisa

Com ssh -L, o cliente abre uma porta na sua máquina e envia conexões para um destino visto a partir do servidor SSH. A autenticação do PostgreSQL continua sendo necessária; o túnel não torna qualquer pessoa um usuário do banco de dados.

Antes de alterar qualquer coisa em produção, anote o estado atual: IP, domínio, porta, serviço afetado e hora do último deploy. Uma modificação isolada é fácil de verificar; cinco mudanças simultâneas tornam mais difícil reconstruir o que aconteceu.

Configuração ou comandos de exemplo

# En tu laptop: puerto local 15432 hacia Postgres del VPS
ssh -N -L 127.0.0.1:15432:127.0.0.1:5432 usuario@vps.ejemplo.com
# En otra terminal
psql 'host=127.0.0.1 port=15432 dbname=app user=lector'
# O en DBeaver: host 127.0.0.1, port 15432

Os domínios, IPs, caminhos e nomes são ilustrativos. Não copie uma configuração inteira sobre a atual sem comparar primeiro. Nos exemplos que incluem portas ou firewall, certifique-se de manter o acesso administrativo.

Como eu faria passo a passo

  1. Preparação. Deixe o PostgreSQL ouvindo em localhost ou em uma interface interna adequada.
  2. Passo 2. Verifique o acesso SSH com uma conta individual autorizada.
  3. Passo 3. Abra o túnel e verifique se a porta 15432 está disponível apenas localmente.
  4. Passo 4. Conecte-se com um usuário PostgreSQL de permissões mínimas.
  5. Verificação. Feche o túnel ao terminar e revise os logs se o acesso falhar.

Quando terminar, comprove a operação real a partir de outra conexão. Por exemplo, para uma API não basta abrir o navegador: execute uma solicitação de leitura, uma gravação em um banco de teste e consulte os logs do processo.

Exemplo de um projeto de verdade

Um freelancer precisa revisar uma reserva de uma plataforma de tours em produção. Abre um túnel temporário e consulta o banco com um usuário de somente leitura, sem expor a 5432 ao mundo nem compartilhar a senha do administrador.

A lição é simples: uma configuração de infraestrutura não vive isolada da aplicação. O frontend, o servidor, o banco de dados e os workers se conectam, então medir onde começa a falha é mais útil do que reiniciar tudo.

O erro que evitaria

Se o banco estiver em outro host, o destino de ssh -L é resolvido a partir do extremo SSH. Um túnel não substitui backups, autenticação do motor nem políticas de acesso. Não o confunda com abrir um túnel público.

Quando trabalha com servidores de clientes, guarde um backup ou procedimento de reversão antes de mudanças que afetem dados, rede ou certificados. E se não souber quais permissões uma operação precisa, evite executar como root apenas para parar de mostrar erros.

Como isso se relaciona com o ArduMaker?

No ArduMaker você pode administrar VPS e PostgreSQL; para acesso remoto de manutenção, uma conexão SSH autorizada pode ser muito mais segura do que publicar diretamente a porta do banco de dados.

Em um caso típico você pode criar um VPS para a aplicação, implantar a partir do Git, associar domínio HTTPS e administrar o backend e os bancos de dados necessários. As ferramentas ajudam a centralizar operações, mas é preciso entender qual porta e processo cumpre cada função.

Perguntas que aparecem quando você testa

Como saber se a falha é de DNS ou do serviço? Consulte primeiro a resolução, depois a conexão na porta e finalmente a resposta da aplicação. Essa ordem evita confundir problemas diferentes.

Posso expor um banco de dados para facilitar a manutenção? Melhor projetar acesso privado ou túneis autenticados quando possível. Expor uma porta não substitui as permissões do mecanismo nem o firewall.

O que devo documentar? A configuração esperada, como verificar e como voltar ao estado anterior. Esse documento ajuda mais do que uma lista de comandos sem contexto.

Referências

Em resumo: uma boa configuração de rede ou servidor é aquela que você consegue explicar, verificar e recuperar quando algo falha.

  • PostgreSQL
  • Tutorial
  • ArduMaker

No ArduMaker

  • PostgreSQL: Instale o PostgreSQL e gerencie bancos, usuários e permissões sem linha de comando.

Continuar lendo

Todos os artigos · Planos VPS