Tengo la siguiente situación: hay algunos hosts a los que solo se puede acceder a través de un túnel ssh. digamos que es
Puedo establecer el túnel SSH y vincular los 443 puertos necesarios para la conexión a los puertos locales:
ssh -L 1443:example.com:443 -L 2443:other.com:443 -A -l username myproxy.com
Esto funciona bien hasta ahora: cuando llamo https://localhost:1443
, puedo abrir example.com, si llamo https://localhost:2443
, puedo llamar a other.com
El problema: hay algunas aplicaciones que no son conscientes de esto y aun así intentan conectarse a través del nombre de host y el puerto habituales.
Al agregar las siguientes líneas a mi hosts
archivo, puedo acercarme un paso más a la solución final:
127.0.0.1 example.com
127.0.0.1 other.com
Esto me permite llamar https://example.com:1443
y https://other.com:2443
en mi navegador, pero el puerto sigue siendo un problema. Necesitaría asignar AMBOS dominios a mi puerto local 443
para que funcione para otras aplicaciones.
Supongo que necesitaré tener un servidor proxy local escuchando el puerto 443
y reenviando el tráfico según el nombre de host a o 1443
, 2443
pero aquí es donde estoy perdido.
¿Qué puedo hacer para permitir que todas las aplicaciones en mi máquina solo usen el nombre de host/puerto pero dejen que el tráfico pase por mi túnel SSH?
Respuesta1
Usar ssh -D
. Esto creará un servidor proxy SOCKS 5 en el puerto especificado (generalmente 1080 o 9050), que puede configurar en el navegador y accedertodoa través del túnel SSH.
Esto funciona de manera idéntica con OpenSSH, PuTTY (plink), Bitvise Tunnelier; y no depende de ninguna característica a nivel del sistema operativo.
Por ejemplo, al ssh -D 9050
ejecutarlo, puedes configurar Firefox de esta manera:
(Es posible que Chrome necesite unopción de línea de comandoen cambio.)