Saltar al contenido principal

Cómo crear un túnel SSH en un Mac

Por Lucas Russo, desarrollador de SSHive · Actualizado el

Túneles SSH locales, remotos y SOCKS5 en macOS, en la línea de comandos y en el editor de perfiles de SSHive, donde vuelven en cada conexión.

Tiempo estimado: 5 minutos

Un túnel SSH lleva un puerto de red dentro de una conexión SSH cifrada, y los hay de tres tipos. El local (-L) trae a tu Mac un puerto de la red remota: una base de datos, una página de administración, cualquier cosa que solo alcanza el servidor. El remoto (-R) hace lo contrario y abre en el servidor un puerto que vuelve a tu Mac. El dinámico (-D) convierte la conexión en un proxy SOCKS5 para tu navegador, con su propia guía de SOCKS5. Con OpenSSH, incluido en macOS, cada uno cabe en una línea: ssh -L 5433:db.internal:5432 user@bastion o ssh -R 8080:localhost:3000 user@server. Los pasos de abajo crean los mismos túneles en SSHive, ligados a un perfil. La versión gratuita incluye 1 túnel local; los túneles remotos y SOCKS5 requieren Pro, que en Mac permite hasta 10 túneles locales, 5 remotos y 1 puerto SOCKS por perfil.

Paso a paso

  1. Abrir un perfil y desplegar «Opciones avanzadas»

    Barra lateral › + (nueva conexión), o clic derecho en un perfil existente › Editar. Rellena host, puerto, usuario y autenticación como de costumbre y haz clic en Opciones avanzadas, al final del diálogo. Entre los bloques que se despliegan están los tres tipos de túnel: Túneles locales (-L), Túneles remotos (-R) y Proxy SOCKS5 (-D).
  2. Añadir un túnel local (-L), el caso más habitual

    En Túneles locales (-L) haz clic en + Añadir. Aparecen tres campos en una línea: puerto local (5433, por ejemplo; desde 1024 no hace falta sudo), host remoto (db.internal, tal como lo ve el servidor SSH; localhost si el servicio corre en el propio servidor) y puerto remoto (5432). Guarda. El túnel se abre cada vez que te conectas con este perfil, ligado solo a 127.0.0.1: no hay campo de dirección de escucha, así que nada más en tu red puede usarlo. La versión gratuita permite 1 túnel local; Pro permite 10 por perfil.
  3. Añadir un túnel remoto (-R), Pro

    En Túneles remotos (-R) haz clic en + Añadir. Campos: puerto remoto (el que se abre en el servidor SSH, 8080), host local (localhost) y puerto local (3000). En el servidor, curl localhost:8080 llega ahora al puerto 3000 de tu Mac. En la versión gratuita el bloque aparece atenuado y, al pulsar su etiqueta PRO, se abre la ventana para pasar a Pro. Pro permite 5 túneles remotos por perfil.
  4. Leer el indicador ⇄ de la barra de estado

    Una vez conectado, la barra de estado muestra ⇄ N, donde N es el número de túneles activos (locales, remotos y SOCKS juntos). Haz clic para abrir el panel Estado de los túneles: cada túnel aparece con su tipo, su puerto local, su destino y su estado en vivo, más un botón para cerrarlo. Si un túnel no consigue escuchar (puerto ya ocupado), la sesión SSH sigue conectada y el fallo queda registrado; N simplemente no lo cuenta.
  5. Reconexión automática: los túneles vuelven con la sesión

    Cuando la sesión SSH se cae (cambio de Wi-Fi, suspensión, reinicio del servidor), todos los túneles se cierran con ella, porque viven dentro de la conexión. La reconexión automática de SSHive recupera entonces la sesión y vuelve a abrir uno por uno los túneles del perfil, sin que tengas que hacer nada. Si un túnel falla en cada reconexión, revisa el sshd remoto: AllowTcpForwarding yes para los túneles locales y remotos, más GatewayPorts yes si un túnel remoto debe ser accesible desde fuera del servidor.

Preguntas frecuentes

¿El túnel muere cuando termina mi sesión SSH?+
Sí, los túneles viven con la conexión SSH. Cuando la conexión se corta de forma inesperada, SSHive se vuelve a conectar solo y reabre con ella los túneles del perfil. Para túneles de larga duración, pon ServerAliveInterval 60 en OpenSSH o confía en el keepalive integrado de SSHive (cada 30 s por defecto).
¿Puedo pasar un túnel por una cadena de jump hosts?+
Sí. En la línea de comandos, ssh -J bastion1,bastion2 -L 5432:db:5432 user@target pasa por los dos bastiones. En SSHive, añade los dos bastiones, en orden, a la Cadena de saltos del perfil de destino, como muestra la guía del jump host; los túneles definidos en ese perfil recorren entonces toda la cadena. Las cadenas de saltos son de Pro.

Funciones de SSHive relacionadas

Túneles SSH

Local, remoto y proxy SOCKS5

Terminal SSH

Terminal acelerado por GPU

Prueba SSHive gratis en macOS

Consigue el cliente todo en uno de SSH, SFTP, RDP y VNC para Mac. Descarga gratuita, sin registro.

Descargar SSHive gratis