
Lo siento si mi pregunta es estúpida pero no puedo entender dos cosas. Supongamos que estoy haciendo el ejemplo escrito.aquí:
[...] deseaba conectarse desde su computadora portátil ahttp://www.ubuntuforumsorg usando un túnel SSH. Utilizaría el puerto de origen número 8080 (el puerto http alternativo), el puerto de destino 80 (el puerto http) y el servidor de destino www.ubuntuforums.org. :
ssh -L 8080:www.ubuntuforums.org:80 <host>
Donde
<host>
debe ser reemplazado por el nombre de su computadora portátil.
P1: ¿Qué puedo lograr realmente con esto? En el servidor remoto, no hay ningún sshd disponible, por lo que el tráfico deja mi PC sin cifrar, ¿verdad? ¿Para qué necesitaría esto?
P2: Estoy intentando hacer ssh -L 4444:linuxpl.com:80 localhost. cuando entrohttp://localhost:4444En mi navegador web, puedo ver el sitio interno de LiteSpeed Web Server. Cuando pruebo otras páginas, puedo ver los sitios internos de Apache. Cuando pruebo otro, puedo ver el mensaje de página 404 no encontrada de este sitio. Sin embargo, algunos de ellos funcionan como se esperaba. ¿Por qué sucede esto? ¿Como arreglarlo?
Respuesta1
P1: No querrías hacer eso. La página es tonta en su redacción. Como dijiste, el tráfico irá de tu computadora a tu computadora encriptado y luego, sin cifrar totalmente, al sitio del foro. Podrían haberlo explicado utilizando otra computadora para reenviar el tráfico, por ejemplo para evitar un firewall.
Lo que significa el tutorial es "quieres conectarte al foroa través desu computadora portátil desde otra máquina" y entonces tiene más sentido.
P2: Si abreshttp://localhost:4444/en su máquina, realizará una solicitud HTTP al foro, pero le indicará al foro que desea alojar localhost
, no linuxpl.com
. El servidor probablemente devolverá una página predeterminada y no el host virtual real que deseaba, ya que utiliza hosts virtuales y localhost
no se asigna al mismo sitio que linuxpl.com
.
En general, reenviar tráfico HTTP a través de túneles ssh no funcionará tan fácilmente muchas veces. Reenviar a un proxy en algún lugar funcionaría mucho mejor.
Para que su navegador envíe encabezados adecuados, puede lograrlo configurando su archivo de hosts para que indique que la dirección de destino es su máquina. De esta manera, cuando el navegador resuelva la dirección, se conectará a su máquina local y aún le indicará al servidor HTTP el nombre de host adecuado.
Puedes probar esto agregando la línea
127.0.0.1 linuxpl.com
a /etc/hosts
Respuesta2
P1: Estaba usando esto en un entorno donde no tienes contacto con Internet. Imagine que está ejecutando su computadora portátil en una red que no permite conexiones con el mundo exterior, pero hay una sola máquina que puede conectarse tanto al mundo exterior como a la red donde se encuentra su computadora portátil. Entonces, para poder navegar Deberá conectarse a esta máquina para que su tráfico de Internet ingrese a la red externa a través de la máquina autorizada.
La conexión es algo como esto: Cuando escribeshttp://localhost:4444ssh recogerá la solicitud y la enviará al host, que luego la enviará a linuxpl.com:80. La conexión entre su computadora portátil y el host está cifrada mediante ssh, la conexión entre el host e Internet no está cifrada, es decir, ssh solo reenvía y cifra mensajes entre sus dos máquinas.
P2: Realmente no entiendo cuál es el problema, pero ssh -L 4444:linuxpl.com:80 localhost realmente no tiene sentido... ya que estás haciendo un túnel entre tu máquina y tu máquina...