Vamos a estructurarlo técnicamente para que tengas un PC local → túnel SSH → instancia EC2 → aplicación desplegada funcionando de forma segura.
Exponer una app que corre en tu PC a través de EC2 usando un túnel SSH (reverse tunnel)
Esto se usa cuando:
- Tu PC está detrás de NAT.
- No quieres abrir puertos en tu router.
- Quieres que EC2 actúe como puente público.
Arquitectura: Internet → EC2 (IP pública) → túnel SSH → tu PC → app local
Temas que debes revisar
Configurar Security Group en EC2
Este ejemplo lo realizamos al Crear una instancia EC2 de Amazon AWS en donde realizamos la configuración de la red, en donde seleccionamos un grupo de seguridad.
Nota: Este ejemplo también se puede hacer con cualquier maquina, o inatancia de Azure, o GCP.
En EC2 debes permitir los siguientes puertos en Grupos de seguridad de Amazon EC2 para instancias EC2:
| Tipo | Puerto | Origen |
|---|---|---|
| SSH | 22 | Tu IP |
| Custom TCP | (ej: 8080) | 0.0.0.0/0 (si quieres público) |
Conectarte por SSH desde tu PC
Procedemos a realizar una conexión ssh, revisa a detalle Cómo conectarse a la instancia EC2 desde Windows mediante OpenSSH
Linux / WSL / Git Bash
ssh -i mi-clave.pem ec2-user@IP_PUBLICA_EC2
Ubuntu
ssh -i mi-clave.pem ubuntu@IP_PUBLICA_EC2
Crear túnel SSH inverso
Recuerda revisar Ejemplo con túnel SSH inverso si aun no has trabajado con tueneles invesos.
Supongamos:
- Tu app corre en tu PC en:
localhost:3000 - Quieres que desde EC2 esté disponible en el puerto
8080
Desde tu PC ejecuta:
ssh -i mi-clave.pem -R 8080:localhost:3000 ec2-user@IP_PUBLICA_EC2
Esto significa:
En EC2 puerto 8080 → redirige a → localhost:3000 de tu PC
Ahora si visitas:
http://IP_PUBLICA_EC2:8080
Verás tu aplicación local.
Permitir GatewayPorts (IMPORTANTE)
En la instancia EC2 debes editar:
sudo nano /etc/ssh/sshd_config
Buscar:
#GatewayPorts no
Cambiarlo a:
GatewayPorts yes
Luego reiniciar:
sudo systemctl restart sshd
Si no haces esto, solo funcionará en localhost dentro de EC2.