Se habla muy poco del port forwarding con ssh. Una característica más peligrosa que una caja de petardos con un mechero encendido al lado, pero extremadamente útil si la tienes controlada y la usas adecuadamente. Voy a poner un par de ejemplos de uso que no se alejan demasiado de la realidad, pero sí lo suficiente. Perfectamente válidos en Windows, Linux, Mac o el sistema que más os guste, si tiene OpenSSH instalado.
En mi servidor vps he instalado un producto x. Ese producto ofrece una interfaz web en localhost por el puerto 8080. No quiero meterle un proxy inverso ni obligar a que escuche en todas las direcciones, por seguridad. Así que hago:
ssh -L 8080:localhost:8080 usuario@direccion-del-servidor
Seguidamente, abro mi navegador, entro en localhost:8080, y mientras la ventanita de ssh permanezca abierta, manejo la interfaz web del producto como si estuviera aquí mismo.
Y está la inversa, el reenvío de un puerto remoto de mi propio pc. Tengo un vps con la CPU y la RAM justas, y quiero ofrecer un llama.cpp, ejecutado desde mi portátil, que tiene tarjeta gráfica y se puede apoyar en Cuda. Lo lanzo por el puerto 3000, y hago:
ssh -R 3000:localhost:3000 usuario@direccion-del-servidor
Después configuro un proxy inverso en el Apache del vps apuntando a localhost:3000, y magia! Los visitantes entran a un llama.cpp plenamente operativo que está en mi portátil.