Tenho a seguinte situação: Existem alguns hosts que só são acessíveis através de um túnel ssh. Digamos que é
Posso estabelecer o túnel SSH e vincular as 443 portas necessárias para a conexão às portas locais:
ssh -L 1443:example.com:443 -L 2443:other.com:443 -A -l username myproxy.com
Isso funciona bem até agora - quando eu ligar https://localhost:1443
, posso abrir example.com, se eu ligar https://localhost:2443
, posso ligar para other.com
O problema: existem alguns aplicativos que não estão cientes disso e ainda tentam se conectar por meio do nome de host e da porta normais.
Adicionando as seguintes linhas ao meu hosts
arquivo, posso chegar um passo mais perto da solução final:
127.0.0.1 example.com
127.0.0.1 other.com
Isso me permite ligar https://example.com:1443
no https://other.com:2443
meu navegador - mas a porta ainda é um problema. Eu precisaria mapear AMBOS os domínios para minha porta local 443
para que funcionasse para outros aplicativos.
Acho que precisarei de um servidor proxy local escutando a porta 443
e encaminhando o tráfego com base no nome do host para ou 1443
, 2443
mas é aqui que estou perdido.
O que posso fazer para permitir que todos os aplicativos da minha máquina usem apenas o nome do host/porta, mas deixem o tráfego passar pelo meu túnel SSH?
Responder1
Usar ssh -D
. Isso criará um servidor proxy SOCKS 5 na porta especificada (geralmente 1080 ou 9050), que você pode configurar no navegador e acessartudoatravés do túnel SSH.
Isso funciona de forma idêntica com OpenSSH, PuTTY (plink), Bitvise Tunnelier; e não depende de nenhum recurso no nível do sistema operacional.
Por exemplo, ao ssh -D 9050
executar, você pode configurar o Firefox assim:
(O Chrome pode precisar de umopção de linha de comandoem vez de.)