SSH redirigir puerto local
Introducción
SSH es una excelente herramienta no solo para conectarte e interactuar con servidores remotos. En este artículo vamos a explorar el reenvío de puertos locales con SSH y qué significa. También exploraremos el Reenvío de puertos remotos con SSH y el Proxy Socks con SSH y cómo usar estas funcionalidades.
Explicación
El reenvío de puertos locales básicamente te permite redirigir un puerto de una máquina remota hacia tu máquina local. Por ejemplo, si querés conectarte a un servicio remoto desde tu máquina pero solo temporalmente o si hay un firewall que no te deja hacerlo. Supongamos que querés conectarte a una instancia de MySQL en el puerto por defecto (3306).
El comando
ssh -Nn -L 3306:localhost:3306 user@example.com
En este caso, estamos redirigiendo localhost:3306
de la máquina remota a localhost:3306
de tu máquina local, pero también podés especificar otra dirección de la red, por ejemplo 172.16.16.200, y el comando se vería así:
ssh -Nn -L 3306:172.16.16.200:3306 user@example.com
Esto te dará acceso a la IP 172.16.16.200 y al puerto 3306 en la red remota.
Los parámetros y su significado
Saqué una porción del significado de los parámetros de la página del manual, pero en resumen significa un reenvío de puerto local sin ejecutar un shell.
-N No ejecuta un comando remoto. Esto es útil solo para redirigir puertos.
-n Redirige stdin desde /dev/null (en realidad, evita la lectura desde stdin). Debe usarse cuando SSH se ejecuta en segundo plano.
-L Especifica que las conexiones al puerto TCP o socket Unix en el host local (cliente) deben ser redirigidas al host y puerto dados, o socket Unix, en el lado remoto.
Configuración del servidor
Hay un parámetro de configuración que puede cambiar el comportamiento del reenvío de puertos locales y remotos. Ese parámetro es AllowTcpForwarding
.
AllowTcpForwarding
Por defecto, esta opción está configurada en yes
. Podés restringir el reenvío de puertos remotos y locales configurándola en no
, o permitir solo el reenvío local configurándola en local
.
Notas finales
Como podés ver, esta opción puede ser muy útil para saltarse firewalls o tener un reenvío de puertos temporal. Si querés hacerlo automático y no tan temporal, podés revisar autossh. Para probar las conexiones y los túneles sin instalar nada adicional, podés usar nc (netcat): en el servidor ejecutás nc -l -p PUERTO
, y en el cliente, nc HOST PUERTO
.
Errata
Si encontrás algún error o tenés alguna sugerencia, por favor enviame un mensaje para que lo corrija.
Además, podés revisar el código fuente y los cambios en el código generado y las fuentes aquí
No tienes cuenta? Regístrate aqui
Ya registrado? Iniciar sesión a tu cuenta ahora.
-
Comentarios
Online: 0
Por favor inicie sesión para poder escribir comentarios.