MXterm Pro

Port forwarding SSH en Mac con MXterm Pro: reglas -L y lo que falta

Henry AGI
5 min de lectura
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

MXterm Pro tiene un panel de port forwarding SSH en Mac, pero limitado: aparece en una pestaña SSH abierta y añade o cancela reenvíos locales (-L) hacia 127.0.0.1 en el servidor. No tiene opción remota (-R) ni SOCKS, y no guarda reglas. Sirve para reenviar una base de datos o una interfaz de administración, no para un túnel permanente. Esta página trata esos límites, no explica los túneles SSH desde cero.

¿Qué hace el panel de port forwarding de MXterm Pro?

El panel de MXterm Pro añade y cancela reenvíos de puertos locales sobre la conexión SSH que tu pestaña ya tiene abierta. No abre una segunda conexión ni te pide iniciar sesión otra vez. Cada regla llega al proceso ssh en ejecución como un comando de control, así que el reenvío viaja por la sesión en la que ya estás escribiendo.

Llegas a él desde el panel SFTP que se acopla junto a una pestaña SSH, el mismo panel de archivos remotos que usas para explorar y editar. El botón de su encabezado tiene el tooltip Administrador de reenvío de puertos y túneles SSH y abre una ventana titulada Reenvío de puertos y túneles SSH. Un panel de shell normal no tiene panel SFTP, así que tampoco tiene botón de reenvío.

Cada pestaña SSH ejecuta el ssh del sistema con ControlMaster=auto y un ControlPath compartido. Iniciar envía ssh -O forward -L <spec> a ese master. Detener envía ssh -O cancel -L <spec>.

La nota al pie del panel dice "Todo el flujo reenviado está cifrado por SSH". Es cierto en el sentido habitual: es el mismo reenvío de OpenSSH que obtienes con ssh -L, con el mismo cifrado, no un transporte distinto.

¿Cómo añades un reenvío local y en qué comando se convierte?

En MXterm Pro, tres campos, Nombre, Puerto local y Puerto remoto, forman un único reenvío -L sobre la conexión abierta, por ejemplo ssh -O forward -L 127.0.0.1:5432:127.0.0.1:5432. No hay campo de host de destino ni selector de dirección. Los pasos suponen que el host ya está guardado en el gestor SSH (consulta la documentación de SSH y SFTP).

1. Abre el host como pestaña SSH. Shift+Cmd+H abre el gestor SSH y Conectar abre una pestaña que ejecuta el ssh del sistema. Inicia sesión en la terminal como siempre. Esa sesión es la conexión que usará el reenvío.

2. Haz clic en el botón de reenvío del encabezado del panel SFTP. En Agregar nuevo reenvío de puerto, escribe un nombre (el texto de ejemplo sugiere Postgres 5432), un puerto local y un puerto remoto, y pulsa Agregar regla. Los puertos deben ir de 1 a 65535. Un puerto fuera de ese rango se rechaza con un error antes de que ssh llegue a verlo.

3. Pulsa Iniciar en la regla. La etiqueta cambia de DETENIDO a EN EJECUCIÓN solo cuando ssh acepta el reenvío.

Si ssh lo rechaza, su propio texto de error aparece en rojo sobre la lista y la etiqueta sigue en DETENIDO. Detener cancela el reenvío. Borrar una regla en ejecución envía la misma cancelación, pero si esa cancelación falla la fila desaparece igual y no se muestra ningún error.

Con Puerto local 5432 y Puerto remoto 5432, la app envía ssh -O forward -L 127.0.0.1:5432:127.0.0.1:5432 a la conexión de la pestaña, con destino <user>@<host>. Apunta psql o tu cliente de base de datos a 127.0.0.1:5432 en la Mac, y el tráfico sale en el puerto 5432 del servidor.

La forma general es 127.0.0.1:<local>:127.0.0.1:<remote>.

Guía relacionadaCómo gestionar servidores SSH en Mac cuando tienes más de 50

¿A dónde puede apuntar un reenvío? Solo a localhost del servidor

Toda regla que crea el panel de MXterm Pro apunta a 127.0.0.1 tal como lo ve el servidor SSH. Eso cubre Postgres, Redis o una interfaz de administración que se ejecuta en el propio servidor. No llega a una tercera máquina detrás del servidor, como db.internal:5432, porque el formulario no tiene campo de host de destino y el código pone 127.0.0.1 por ti.

La fila de la regla muestra 127.0.0.1:<local> → <server>:<remote>, con la dirección de tu servidor a la derecha. Léelo como "el puerto <remote> del propio servidor". El reenvío sigue terminando en la dirección loopback del servidor, no en otra interfaz.

El extremo en la Mac también es fijo. La especificación enlaza el puerto local a 127.0.0.1 de forma explícita, así que una línea GatewayPorts yes en tu ~/.ssh/config no puede publicar el puerto de una base de datos reenviada en tu red. Solo los programas de esta Mac pueden conectarse.

Para un tercer host, escribe el reenvío tú mismo en un panel de shell normal: ssh -L <local>:db.internal:5432 <user>@<bastion>. Es OpenSSH normal ejecutándose en una terminal real.

Cerrar el panel no detiene un reenvío

Cerrar el panel de MXterm Pro no cancela un reenvío en ejecución. El reenvío pertenece a la conexión SSH de la pestaña, no a la lista del panel. El panel solo existe mientras está abierto, su botón de cierre solo lo cierra y no hay ningún paso de limpieza que envíe -O cancel. Solo Detener y el botón de borrar cancelan un reenvío concreto.

Cerrar toda la conexión compartida también termina cada reenvío que lleva: lo hace el botón Restablecer conexión del panel de archivos (aparece cuando un servidor rechaza un inicio de sesión o obliga a cambiar la contraseña), y también editar los ajustes de conexión de un host o borrar y volver a añadir el host en el gestor SSH.

Si cierras el panel con una regla en EN EJECUCIÓN y lo reabres, ves una lista vacía mientras el puerto puede seguir escuchando.

Es OpenSSH, no la app, quien decide cuánto tiempo sigue escuchando un reenvío en ejecución. -O forward y -O cancel son comandos que se envían al master de multiplexación. Según la página de manual de ssh_config, ControlPersist mantiene ese master en segundo plano cuando se cierra la última sesión, y lo termina cuando pasa el tiempo configurado sin conexiones de cliente.

MXterm Pro inicia cada pestaña SSH con ControlPersist=10m, es decir, 10 minutos.

Como el master mantiene la conexión, un reenvío añadido así puede sobrevivir a la pestaña, de modo que cerrar la pestaña SSH puede no terminarlo de inmediato. Cómo se comporta esto en Windows no ha sido comprobado.

Para comprobar si queda un reenvío, lsof -iTCP:<port> -sTCP:LISTEN muestra si algo sigue escuchando en ese puerto.

Para eliminarlo, cancélalo en el mismo master que usa la app: 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>. Usa el puerto, el nombre de usuario y el host exactamente como están guardados en el gestor SSH (el puerto es 22 salvo que lo hayas cambiado).

Si la conexión ya no existe, Iniciar falla con el mensaje de ssh, normalmente Control socket connect(...): No such file or directory. Abre el host en una pestaña SSH y pulsa Iniciar otra vez. El panel no reconecta los reenvíos, y nada en su código vuelve a comprobar una etiqueta EN EJECUCIÓN después de que ssh acepta el reenvío por primera vez. Detectar una sesión caída es cuestión de keepalive, que se explica en la guía de tiempos de espera de SSH.

Lo que el port forwarding de MXterm Pro no hace

La interfaz de MXterm Pro ofrece solo reenvíos locales (-L): sin opción de reenvío remoto, sin proxy SOCKS dinámico y sin campo de host de destino. Las reglas no se guardan, así que nada vuelve después de reconectar.

El panel también necesita una pestaña SSH abierta. El botón está en el panel SFTP, que solo existe junto a las pestañas SSH, y un reenvío necesita la conexión que abrió esa pestaña. Un panel de shell local, o un host guardado al que no te has conectado, no tiene nada por donde reenviar.

En Windows, considera los túneles como no probados. El código de SSH, SFTP y túneles de MXterm Pro depende de la variable HOME y del ControlMaster de OpenSSH, y la documentación de la app marca esa combinación como sin verificar en Windows. El código de túneles construye la ruta del socket a partir de HOME. Sin ella, Iniciar avisa de que no encuentra el master de ssh.

El reenvío no tiene límite por plan en el código: el panel no comprueba si eres Pro ni limita el número de reglas. El límite del plan Free que sí le afecta es el de la lista de hosts SSH: por defecto admite 5 hosts guardados en Free.

¿Cuándo usar el panel y cuándo escribir ssh tú mismo?

Usa el panel para un reenvío rápido a algo que se ejecuta en el propio servidor, como una base de datos, Redis o una página web interna. Puedes iniciarlo y detenerlo sin salir de la sesión. Escribe ssh tú mismo cuando necesites un destino en un tercer host, un reenvío remoto, un proxy SOCKS o una regla que quieras conservar para la próxima vez.

Los paneles de MXterm Pro son terminales reales, así que un comando ssh con -L, -R o -D escrito en un panel normal se comporta como en cualquier sitio donde se ejecuta OpenSSH. La app no gestiona, lista ni guarda esos reenvíos. Normalmente duran lo que dure ese proceso ssh, salvo que tu propio ~/.ssh/config active ControlMaster con ControlPersist.

Para un ejemplo práctico sobre una conexión SSH, consulta cómo ejecutar Ollama junto a sesiones SSH.

Para probarlo, abre un host guardado como pestaña SSH, abre el panel de reenvío desde el encabezado SFTP y añade una regla para un puerto que ya reenvías a mano. Si cubre tu caso, puedes prescindir de la ventana extra con ssh -L. Si necesitas más que un reenvío local al propio servidor, sigue escribiendo ssh.

Pruébalo tú mismo

SSH con varios paneles, Command Recipes (Cmd+J) y una Control Room (antes War Room) multiagente: gratis para empezar.

Descargar MXterm Pro

¿Ya tienes MXterm Pro? Lee la guía de configuración →

¿Nuevo en MXterm Pro? Mira los precios →

Preguntas frecuentes

¿Qué es el reenvío local de puertos SSH y lo hace el panel de MXterm Pro?

El reenvío local de puertos SSH es la opción -L de OpenSSH: la página de manual de ssh lo describe como reenviar conexiones del host local a un host y puerto dados en el lado remoto. El panel de MXterm Pro ofrece esto, pero solo reenvíos locales, en una pestaña SSH abierta. El destino es siempre 127.0.0.1 en el servidor, así que 127.0.0.1:<local> en tu Mac llega a <remote> en el servidor.

¿MXterm Pro admite port forwarding remoto (-R) o SOCKS (-D)?

No en el panel de MXterm Pro. La interfaz crea solo reenvíos locales (-L), siempre a 127.0.0.1 en el servidor. Aun así puedes escribir un comando ssh con -R o -D en un panel de shell normal, porque los paneles son terminales reales. Pero es OpenSSH normal: MXterm Pro no lista, guarda ni detiene esos reenvíos.

¿MXterm Pro guarda mis reglas de port forwarding?

No. La lista de reglas de MXterm Pro existe solo mientras el panel está abierto, así que aparece vacía cada vez que lo abres y nada se restaura tras una reconexión. Cerrar el panel no cancela un reenvío en ejecución. Comprueba con lsof o cancélalo con ssh -O cancel si necesitas recuperar el puerto.

¿Puedo reenviar a una base de datos de otra máquina detrás de mi servidor, como db.internal:5432?

No desde el panel de MXterm Pro. El host de destino está fijado en 127.0.0.1 tal como lo ve el servidor, así que solo se alcanzan servicios del propio servidor. Para una máquina detrás de él, escribe el reenvío en un panel de shell normal, por ejemplo ssh -L <local>:db.internal:5432 <user>@<bastion>.

¿Por qué Iniciar muestra "No such file or directory" en el panel de port forwarding de MXterm Pro?

Es el mensaje del propio ssh cuando no hay una conexión abierta para el host, así que el reenvío no tiene a qué engancharse. Abre el host en una pestaña SSH, inicia sesión y pulsa Iniciar otra vez. El panel muestra el texto de error de ssh tal cual en lugar de ocultarlo, y la etiqueta sigue en DETENIDO.

¿Pueden otras computadoras de mi red acceder a un puerto reenviado con MXterm Pro?

No a través del panel de MXterm Pro. Enlaza el extremo local a 127.0.0.1 de forma explícita, así que solo pueden conectarse programas de la misma Mac, aunque tu ~/.ssh/config defina GatewayPorts o normalmente pases -g. Un reenvío que escribes tú mismo sigue las opciones que le des.

¿Funcionan los túneles SSH de MXterm Pro en Windows?

Sin verificar. Las funciones de SSH, SFTP y túneles dependen de la variable HOME y del ControlMaster de OpenSSH, y la propia documentación de la app las marca como sin verificar en Windows. La build de Windows x64 está disponible pero no está firmada con Authenticode. No dependas del panel de reenvío allí sin comprobarlo tú mismo.

Pregunta a una IA sobre MXterm Pro

Abre una respuesta en vivo en ChatGPT, Claude o Perplexity, basada en esta página. La escribe el asistente, no nosotros, así que revisa las fuentes que cita.

Pregunta enviada¿Qué hace el panel de SSH port forwarding de MXterm Pro y qué no puede hacer?