Considere la siguiente situación:
En mi casa, tengo un enrutador (que está conectado a Internet), un servidor (S) y mi máquina principal (M). Se puede acceder a S desde Internet (tiene IP estática), y está activo las 24 horas, los 7 días de la semana, mientras que M no.
A veces, quiero que alguna aplicación (que escucha en algún puerto en M, por ejemplo 8888) sea accesible desde Internet externo.
Para eso, quería configurar algún puerto en S (2222) para reenviarlo al puerto 8888 de M, para que cualquiera que acceda a S: 2222 sienta que está accediendo a M: 8888.
Traté de usar el reenvío de puertos ssh, mi mejor intento fue el siguiente:
ssh -L 2222:M:8888 -N M
Pero eso solo me permite acceder al puerto 2222 desde el servidor mismo, no desde otras máquinas.
¿Hay alguna forma de hacerlo correctamente? Preferiblemente, me gustaría que fuera un comando simple, que podría iniciar y cerrar con ^ C cuando ya no necesite ese reenvío.