¿Cómo hago un túnel y navego por la página web del servidor en mi computadora portátil?

55

Ejecuto una aplicación web en uno de mis servidores de laboratorio, y ya he configurado X11 Forwarding en esas máquinas. Otros miembros del laboratorio pueden hacer un túnel a través de SSH y explorar esa aplicación web en su navegador local en casa.

No puedo La última vez que consulté con ellos, no hay casi nada que deba hacer.

Cuando escribo 192.168.1.113/webappno obtengo nada.

¿Algun consejo?

Gracias.


Terminé usando el segundo método :)

ssh -L 8080:<server-ip-address>:80 <username>@<remote-addr> -N
CppLearner
fuente
@BlueXrider general, sí, sobre el tema, sí. Para algo como esto, las versiones de Ubuntu realmente no importan, se trata tan sobre el tema como ¿Qué es un torrent y cómo lo uso, que se considera sobre el tema? :)
jrg

Respuestas:

105

Hay dos formas de hacer esto con SSH.

Túnel todo con un proxy SOCKS

Inicie sesión en la máquina remota con el siguiente comando:

ssh -D 8080 remote-host

Ahora vaya a la configuración del proxy de su navegador y configúrelo para usar un proxy SOCKS con el nombre de host 127.0.0.1y el puerto 8080(o cualquier puerto que haya pasado a la -Dopción). Ahora todas las páginas que cargue en su navegador web serán canalizadas a través de la conexión SSH. Ahora debería poder acceder a la página web privada de la misma manera que lo haría desde el host remoto.

Una vez que haya terminado, vuelva a establecer la configuración de proxy de su navegador en normal.

Una desventaja de este método es que todo el resto del tráfico en el navegador web también pasará por la conexión SSH. Por el lado positivo, puede acceder a los servidores remotos con sus nombres de host reales y puede acceder fácilmente a múltiples sitios privados.

Túnel de un solo puerto.

El método alternativo es usar SSH para reenviar un solo puerto:

ssh -L 8080:server-hostname:80 remote-host

Ahora, si apunta su navegador web http://localhost:8080/, debería ver el contenido http://server-hostname/tal como aparecería desde el host remoto.

El beneficio de este método es que deja solo el resto del tráfico del navegador. La desventaja es que algunos enlaces podrían no funcionar si el sitio remoto usa referencias URL absolutas. Si el sitio utiliza principalmente referencias de URL relativas, entonces este método debería ser suficiente.

Para ambas soluciones, el puerto no tiene nada de especial 8080. Puede usar cualquier número de puerto local gratuito que desee, siempre que recuerde usar el mismo en la sshinvocación y en el navegador web.

James Henstridge
fuente
3
Gracias. ¡Fue muy útil! Logré hacerlo de esta manera: ssh -L 8080:<server-ip-address>:80 <username>@<remote-addr> -Nalgo como esto (el segundo método).
CppLearner
¿Es correcto que deba configurar solo un proxy de calcetines en el primer método (consulte: spareclockcycles.files.wordpress.com/2009/04/… ). Es decir, no funcionaría, si apunto el proxy http a 127.0.0.1:8080? Si esto es correcto, tal vez podría señalar en su gran respuesta, que uno tiene que configurar solo el proxy de calcetines.
estudiante
Si usa Chrome (¿segundo navegador?) Puede pasar el parámetro proxy para SOCKS5 directamente al inicio: chromium-browser --proxy-server = "socks5: // localhost: 8080"
panticz.de