Si tiene la suerte de que su proveedor de servicios de Internet (ISP) le proporcione una dirección IP dedicada, puede configurar un servidor doméstico y ponerlo a disposición de Internet agregando algunas reglas de reenvío de puertos ( reenvío ) al enrutador. Pero si tu ISP te obliga a compartir esa IP con tus vecinos, el reenvío de puertos no te ayudará. Otros proveedores simplemente bloquean las conexiones entrantes mediante reglas de firewall.
Los usuarios pueden superar todas estas restricciones con la ayuda de servidores privados virtuales. Todo funcionará con menos de 512 MB de RAM, porque lo único que tiene que hacer es redirigir el tráfico de la red. No consume mucha RAM y CPU. El servidor recibirá las conexiones entrantes y las redirigirá a la computadora a través de un “ túnel SSH inverso ”. De esta forma podrás configurar cualquier tipo de servidor doméstico, por un coste mensual muy reducido.
Imagina que creas un servidor NextCloud para cargar o sincronizar archivos. Protegerá la privacidad de sus archivos cuando estén en su servidor doméstico y, si es necesario, puede comprar un disco duro de 6 TB para aumentar la capacidad de almacenamiento. La factura mensual de electricidad es inferior a 5 dólares al mes (115.000 VND) para un servidor privado virtual. Más económico que la factura mensual de un servidor de 6TB de capacidad.
Nota : este método solo se utiliza para redirigir el tráfico de la red TCP. El servidor web utiliza TCP (puerto 80/tcp). UDP es utilizado por algunos (pero no todos) servidores de juegos, por ejemplo Counter Strike (puerto 27015/UDP). La creación de túneles UDP también es posible, pero requiere algunos trucos.
Permite conexión externa a PC
Windows 10 ahora tiene un cliente SSH integrado
Ya no es necesario utilizar PuTTY para iniciar conexiones SSH. En este tutorial, usaremos el cliente SSH integrado para configurar el túnel. Lea el artículo: Cómo instalar OpenSSH en Windows 10 de LuckyTemplates para obtener más información.
Prepare el servidor privado virtual para la conexión del túnel
Crea un servidor privado virtual con tu proveedor favorito. Lo más importante es elegir una ubicación del servidor lo más cercana posible para minimizar la latencia de la red. Intente configurar el servidor de tal manera que pueda iniciar sesión directamente en la cuenta raíz, preferiblemente con una clave SSH, ya que es más segura. Esto es necesario si desea que el servidor "escuche" las conexiones entrantes en puertos inferiores a 1024, también conocidos como puertos privilegiados.
Abra el símbolo del sistema (o terminal si usa Linux) e inicie sesión en el servidor a través de SSH.
Edite la configuración del servidor OpenSSH:
nano /etc/ssh/sshd_config
Si no ha iniciado sesión como root sino como usuario normal, deberá utilizar este comando para poder guardar el archivo:
sudo nano /etc/ssh/sshd_config
Desplácese hacia abajo hasta encontrar la variable denominada GatewayPorts. Esta línea podría verse así:
#GatewayPorts no
Elimine # (para cambiarlo de un comentario a parte del programa) y cambie la línea a:
GatewayPorts yes
Si no puede encontrar esta línea, simplemente desplácese hasta la parte inferior y agregue la línea usted mismo:
GatewayPorts yes

Presione Ctrl + X , luego presione y y finalmente Enter para guardar el archivo.
Vuelva a cargar el demonio SSH para que adopte la nueva configuración.
systemctl reload ssh.service
Salga de la sesión SSH.
exit
Cómo configurar un túnel SSH inverso
Los parámetros del comando son los mismos en Linux, Windows e incluso BSD. La sintaxis general es:
ssh -R remote_port:host:localport your_username@IP-of-server
- puerto_remoto le dice al servidor que redirija las conexiones a ese puerto.
- host le dice al servidor la dirección IP a la que se redirigirá la conexión. 127.0.0.1 se utilizará aquí para redirigir a la propia computadora del usuario.
- localport indica a qué puerto se deben redirigir los paquetes. Aquí, el usuario debe configurar el número de puerto en el que está "escuchando" la aplicación instalada en la computadora local.
Por ejemplo, para reenviar todas las conexiones en el puerto 80 (al servidor) y enviarlas al puerto 8080 en la computadora local, el comando sería:
ssh -R 80:127.0.0.1:8080 root@203.0.113.1
Esto supone que tiene un servidor web, como Apache o Nginx, escuchando en el puerto 8080 localmente. Pero si Apache/Nginx está escuchando en el puerto 80 predeterminado, entonces no hay problema al usar el mismo puerto dos veces en el comando anterior (porque se refieren al puerto 80 en otro servidor).
ssh -R 80:127.0.0.1:80 root@203.0.113.1
En este punto, si alguien ingresa la dirección IP de su servidor privado virtual en la barra de direcciones de su navegador, su computadora local redirigirá y manejará su conexión.
![Cómo utilizar el túnel SSH inverso para permitir conexiones externas a la PC Cómo utilizar el túnel SSH inverso para permitir conexiones externas a la PC]()
En la imagen superior se ha utilizado un servidor web sencillo para Chrome que escucha en el puerto 8887 por defecto. Los usuarios pueden probar esta configuración ellos mismos instalando la aplicación y luego usando el comando, como se muestra en la imagen.
Cabe mencionar que para mantener activo el túnel, la sesión SSH debe permanecer activa. Para cerrar el túnel, ingrese salida en una ventana de Terminal o Símbolo del sistema.
Como puede ver, no es difícil crear un túnel SSH inverso, pero proteger un sitio web es diferente. Entonces, si elige implementar una idea como un servidor NextCloud local, aíslelo al menos en una máquina virtual. De esta forma, si el sitio web es pirateado, al menos el resto del sistema operativo no resultará dañado.
¡Y otra cosa importante que debes recordar es siempre hacer una copia de seguridad de lo que no quieres arriesgarte a perder!
Espero que tengas éxito.