MXterm Pro

Túnel SSH no Mac com o MXterm Pro: regras locais -L e o que falta

Henry AGI
5 min de leitura
Terminal on the SSH tab port forwarding panel: a local forward to port 5432, then psql, and a note that closing the panel keeps the forward

O MXterm Pro tem uma interface gráfica de túnel SSH no Mac, mas bem restrita: um painel numa aba SSH aberta que adiciona e cancela redirecionamentos locais (-L) para 127.0.0.1 no servidor. Não tem opção remota (-R) nem SOCKS, e não salva regras. Serve para encaminhar um banco de dados ou uma interface de administração, não para um túnel que você mantém. Esta página cobre esses limites, não o básico de túnel SSH.

O que o painel de port forwarding do MXterm Pro faz?

O painel do MXterm Pro adiciona e cancela redirecionamentos locais de porta na conexão SSH que a sua aba já tem aberta. Ele não abre uma segunda conexão nem pede um novo login. Cada regra vai para o processo ssh em execução como um comando de controle, então o redirecionamento usa a sessão em que você já está digitando.

Você chega até ele pelo painel SFTP que fica ao lado de uma aba SSH, o mesmo painel de arquivos remotos usado para navegar e editar. O botão no cabeçalho tem a dica Gerenciador de redirecionamento de portas e túneis SSH e abre uma janela chamada Redirecionamento de portas e túneis SSH. Um painel de shell comum não tem painel SFTP, então também não tem o botão de redirecionamento.

Cada aba SSH executa o ssh do sistema com ControlMaster=auto e um ControlPath compartilhado. O botão Iniciar envia ssh -O forward -L <spec> para esse master. Parar envia ssh -O cancel -L <spec>.

A nota de rodapé do painel diz "Todo o fluxo redirecionado é criptografado pelo SSH". Isso é verdade no sentido comum: é o mesmo redirecionamento do OpenSSH que você obtém com ssh -L, com a mesma criptografia, não um transporte diferente.

Como adicionar um redirecionamento local, e em qual comando ele se transforma?

No MXterm Pro, três campos, Nome, Porta local e Porta remota, viram um único redirecionamento -L na conexão aberta, como ssh -O forward -L 127.0.0.1:5432:127.0.0.1:5432. Não há campo de host de destino nem seletor de direção. Os passos supõem que o host já está salvo no gerenciador SSH (veja a documentação de SSH e SFTP).

1. Abra o host como uma aba SSH. Shift+Cmd+H abre o gerenciador SSH, e Conectar abre uma aba que executa o ssh do sistema. Faça login no terminal como de costume. Esse login é a conexão que o redirecionamento vai usar.

2. Clique no botão de redirecionamento no cabeçalho do painel SFTP. Em Adicionar redirecionamento de porta, preencha um nome (o texto de exemplo sugere Postgres 5432), uma porta local e uma porta remota, e clique em Adicionar regra. As portas devem ir de 1 a 65535. Uma porta fora desse intervalo é recusada com um erro antes mesmo de o ssh ver.

3. Clique em Iniciar na regra. O selo muda de PARADO para EM EXECUÇÃO somente depois que o ssh aceita o redirecionamento.

Se o ssh recusar, o texto de erro dele aparece em vermelho acima da lista e o selo continua em PARADO. Parar cancela o redirecionamento. Excluir uma regra em execução envia o mesmo cancelamento, mas, se esse cancelamento falhar, a linha desaparece mesmo assim e nenhum erro é mostrado.

Para Porta local 5432 e Porta remota 5432, o app envia ssh -O forward -L 127.0.0.1:5432:127.0.0.1:5432 para a conexão da aba, endereçada como <user>@<host>. Aponte o psql ou o seu cliente de banco de dados para 127.0.0.1:5432 no Mac, e o tráfego sai na porta 5432 do servidor.

A forma geral é 127.0.0.1:<local>:127.0.0.1:<remote>.

Guia relacionadoComo gerenciar mais de 50 servidores SSH e VMs na nuvem no Mac

Para onde um redirecionamento pode apontar? Só para o localhost do servidor

Toda regra que o painel do MXterm Pro cria tem como alvo 127.0.0.1, do jeito que o servidor SSH o enxerga. Isso cobre Postgres, Redis ou uma interface de administração rodando no próprio servidor. Não alcança uma terceira máquina atrás do servidor, como db.internal:5432, porque o formulário não tem campo de host de destino e o código preenche 127.0.0.1 por você.

A linha da regra mostra 127.0.0.1:<local> → <server>:<remote>, com o endereço do seu servidor à direita. Leia isso como "porta <remote> no próprio servidor". O redirecionamento ainda termina no endereço de loopback do servidor, não em outra interface.

A ponta do Mac também é fixa. A especificação associa a porta local a 127.0.0.1 de forma explícita, então uma linha GatewayPorts yes no seu ~/.ssh/config não consegue publicar para a sua rede uma porta de banco de dados redirecionada. Só programas deste Mac conseguem se conectar a ela.

Para um terceiro host, digite o redirecionamento você mesmo num painel de shell comum: ssh -L <local>:db.internal:5432 <user>@<bastion>. Isso é OpenSSH puro rodando num terminal de verdade.

Fechar o painel não para um redirecionamento

Fechar o painel do MXterm Pro não cancela um redirecionamento em execução. O redirecionamento pertence à conexão SSH por trás da aba, não à lista do painel. O painel só fica montado enquanto está aberto, o botão de fechar apenas o fecha, e não há nenhuma etapa de limpeza que envie -O cancel. Só Parar e o botão de excluir cancelam um redirecionamento individual.

Encerrar a conexão compartilhada inteira também encerra todos os redirecionamentos nela: o botão Redefinir conexão do painel de arquivos (exibido quando um servidor recusa um login ou força a troca de senha) faz isso, assim como editar as configurações de conexão de um host ou excluir e adicionar o host de novo no gerenciador SSH.

Feche o painel com uma regra EM EXECUÇÃO, reabra, e a lista vem vazia enquanto a porta ainda pode estar escutando.

Quem decide por quanto tempo um redirecionamento em execução continua escutando é o OpenSSH, não o app. -O forward e -O cancel são comandos enviados ao master de multiplexação. A man page do ssh_config diz que o ControlPersist mantém esse master em segundo plano depois que a última sessão fecha. Ele encerra o master quando ele fica ocioso, sem conexões de clientes, pelo tempo definido.

Toda aba SSH aqui é iniciada com ControlPersist=10m, ou seja, 10 minutos.

Como o master mantém a conexão, um redirecionamento adicionado assim pode durar mais que a aba, então fechar a aba SSH pode não encerrá-lo na hora. Como isso se comporta no Windows não foi verificado.

Para ver se sobrou algum redirecionamento, lsof -iTCP:<port> -sTCP:LISTEN mostra se há algo escutando nessa porta.

Para derrubá-lo, cancele no mesmo master que o app usa: ssh -o ControlPath=$HOME/.mxterm/sockets/%r@%h:%p -p <port> -O cancel -L 127.0.0.1:<local>:127.0.0.1:<remote> <user>@<host>. Use a porta, o usuário e o host exatamente como estão salvos no gerenciador SSH (a porta é 22, a menos que você a tenha mudado).

Se a conexão acabou, Iniciar falha com a mensagem do próprio ssh, normalmente Control socket connect(...): No such file or directory. Abra o host numa aba SSH e clique em Iniciar de novo. O painel não reconecta redirecionamentos, e nada no código dele reverifica um selo EM EXECUÇÃO depois que o ssh aceita o redirecionamento pela primeira vez. Perceber uma sessão caída é uma questão de keepalive, tratada no guia de timeout do SSH.

O que o port forwarding do MXterm Pro não faz

A interface do MXterm Pro oferece só redirecionamentos locais (-L): sem opção de redirecionamento remoto, sem proxy SOCKS dinâmico, sem campo de host de destino. As regras não são salvas, então nada volta depois de uma reconexão.

O painel também precisa de uma aba SSH aberta. O botão fica no painel SFTP, que só existe ao lado de abas SSH, e um redirecionamento precisa da conexão que essa aba abriu. Um painel de shell local, ou um host salvo ao qual você ainda não se conectou, não tem por onde redirecionar.

No Windows, trate os túneis como não testados. O código de SSH, SFTP e túneis do MXterm Pro depende da variável HOME e do ControlMaster do OpenSSH, e a documentação do app marca essa combinação como NÃO VERIFICADA no Windows. O código dos túneis monta o caminho do socket a partir de HOME. Sem ela, Iniciar informa que não encontra o master do ssh.

O redirecionamento não tem limite por plano no código: o painel não tem verificação de Pro nem limite no número de regras. O limite do plano Free que o afeta é o da lista de hosts SSH, que comporta 5 hosts salvos no Free por padrão.

Quando usar o painel e quando digitar o ssh você mesmo?

Use o painel para um redirecionamento rápido a algo no próprio servidor, como um banco de dados, o Redis ou uma página web interna. Você inicia e para sem sair da sessão. Digite o ssh você mesmo quando precisar de um destino em um terceiro host, de um redirecionamento reverso, de um proxy SOCKS ou de uma regra que você quer guardar para a próxima vez.

Os painéis do MXterm Pro são terminais de verdade, então um comando ssh com -L, -R ou -D digitado num painel comum se comporta como em qualquer lugar onde o OpenSSH roda. O app não gerencia, lista nem salva esses redirecionamentos. Normalmente eles duram o mesmo tempo que esse processo ssh, a menos que o seu próprio ~/.ssh/config ative ControlMaster com ControlPersist.

Para um exemplo prático por uma conexão SSH, veja como rodar o Ollama junto com sessões SSH.

Para testar, abra um host salvo como aba SSH, abra o painel de redirecionamento pelo cabeçalho do SFTP e adicione uma regra para uma porta que você já redireciona na mão. Se ele cobrir o seu caso, a janela extra do ssh -L pode ir embora. Se você precisa de mais que um redirecionamento local para o próprio servidor, continue digitando ssh.

Veja funcionando na prática

SSH com vários painéis, Command Recipes (Cmd+J) e uma Control Room (antes War Room) multiagente: comece grátis.

Baixar o MXterm Pro

Já tem o MXterm Pro? Leia o guia de configuração →

Novo no MXterm Pro? Veja os preços →

Perguntas frequentes

O que é port forwarding local (-L) no SSH, e o painel do MXterm Pro faz isso?

O port forwarding local do SSH é a opção -L do OpenSSH: a man page do ssh o descreve como o redirecionamento de conexões do host local para um host e uma porta do lado remoto. O painel do MXterm Pro oferece isso, mas só redirecionamentos locais, numa aba SSH aberta. O destino é sempre 127.0.0.1 no servidor, então 127.0.0.1:<local> no seu Mac chega a <remote> no servidor.

O MXterm Pro aceita port forwarding remoto (-R) ou SOCKS (-D)?

Não no painel do MXterm Pro. A interface cria só redirecionamentos locais (-L), sempre para 127.0.0.1 no servidor. Você ainda pode digitar um comando ssh com -R ou -D num painel de shell comum, porque os painéis são terminais de verdade. Mas isso é OpenSSH puro: o MXterm Pro não lista, não salva nem cancela esses redirecionamentos.

As regras de port forwarding ficam salvas no MXterm Pro?

Não. A lista de regras do MXterm Pro só existe enquanto o painel está aberto, então vem vazia toda vez que você o abre e nada é restaurado depois de uma reconexão. Fechar o painel não cancela um redirecionamento em execução. Confira com lsof ou cancele com ssh -O cancel se você precisar da porta de volta.

Posso redirecionar para um banco de dados em outra máquina atrás do meu servidor, como db.internal:5432?

Não pelo painel do MXterm Pro. O host de destino é fixo em 127.0.0.1, do jeito que o servidor o enxerga, então só serviços no próprio servidor são alcançáveis. Para uma máquina atrás dele, digite o redirecionamento num painel de shell comum, por exemplo ssh -L <local>:db.internal:5432 <user>@<bastion>.

Por que o Iniciar mostra "No such file or directory" no painel de port forwarding do MXterm Pro?

Essa é a mensagem do próprio ssh quando não há conexão aberta para o host, então o redirecionamento não tem onde se encaixar. Abra o host numa aba SSH, faça login e clique em Iniciar de novo. O painel mostra o texto de erro do ssh como ele é, em vez de escondê-lo, e o selo continua em PARADO.

Outros computadores da minha rede conseguem acessar uma porta redirecionada com o MXterm Pro?

Não pelo painel do MXterm Pro. Ele associa a ponta local a 127.0.0.1 de forma explícita, então só programas do mesmo Mac conseguem se conectar, mesmo que o seu ~/.ssh/config defina GatewayPorts ou que você costume passar -g. Um redirecionamento que você digita segue as opções que você der.

Os túneis SSH funcionam no MXterm Pro no Windows?

Não verificado. Os recursos de SSH, SFTP e túneis dependem da variável HOME e do ControlMaster do OpenSSH, e a documentação do próprio app os marca como não verificados no Windows. O build Windows x64 está disponível, mas sem assinatura Authenticode. Não conte com o painel de redirecionamento lá sem conferir por conta própria.

Pergunte a uma IA sobre o MXterm Pro

Gere na hora uma resposta no ChatGPT, no Claude ou no Perplexity, com base nesta página. Quem escreve a resposta é o assistente, não a gente, então confira as fontes que ele cita.

Pergunta enviadaO que o painel de port forwarding SSH do MXterm Pro faz e o que ele não faz?