Reenvío de puertos entre 3 máquinas

Reenvío de puertos entre 3 máquinas

Tengo 3 máquinas que están conectadas en cadena, A,B,C.

 A-->B-->C

A es mi máquina, B es el servidor y C es otra máquina con algunos servicios y un servidor web. Debido a algunos problemas, necesito acceso desde A al servidor web en C (puerto 80), puedo usar ssh para iniciar sesión de A a B y luego de B a C, pero la consola en este momento es demasiado pequeña. Necesito un navegador web y usar ssh con la opción -Xno funcionó (algunos problemas con dbus al iniciar Firefox).

Realizo el reenvío de puertos en B usando el comando clásico para reenviar 22 puertos para ssh:

ssh -L 2222:localhostB:22 user@ipC

pero usar lo mismo para reenviar el puerto 80 no funcionó:

ssh -L 8888:localhostB:80 user@ipC

Sé que hay algún otro reenvío para que funcione, pero no entendí cómo ni qué.

Necesito algo como esto:

A --> B (frd from B:8888 to C:80) --> C (port 80 web server)

Por lo tanto, cuando escriba ipB:8888, se me reenviará a C:80.

Se agradecerá cualquier ayuda para explicar lo que se debe hacer o scripts con comandos. Noté en un blog que el ssh -Lreenvío debe hacerse dos veces, pero no entendí por qué.

Respuesta1

Estás en el camino correcto.

En un:

ssh -L 8888:ipC:80 user@ipB -N

Hará que el servidor web en C sea accesible a través de localhost:8888 en A

Un poco más de detalles a petición de los OP:

Por su pregunta, asumí que desea acceder al servidor web de C en A (supongo que tiene un entorno GUI en A, con un navegador web).

No puede acceder a C directamente (por cualquier motivo), pero puede acceder a B, que a su vez puede acceder a C. Entonces creamos un túnel entre A y B, pidiéndole a B que conecte su extremo del túnel al servidor web en C.

información relacionada