Suposições:
- Existe um servidor remoto por trás do NAT, o IP público é
185.68.93.141, mas devido ao NAT, o servidor não está diretamente disponível. - O servidor executa
sshdna porta22ehttpdna porta80. -
185.68.93.141:22é encaminhado para o servidor, então podemossshin (comossh 185.68.93.141). -
185.68.93.141:80é não encaminhado para o servidor.
Objetivo:
- Alcance o controle remoto
httpddo lado de fora.
Possíveis abordagens:
-
ssh -L 5678:localhost:80 185.68.93.141(Nota: o
localhostacima significa localhost no contexto do servidor remoto). Agora, todas as conexões comlocalhost:5678no computador local atingirãolocalhost:80(127.0.0.1:80) do servidor remoto. O controle remotohttpd"verá" a conexão do próprio servidor remoto. Seu navegador local deve visitarhttp://localhost:5678. Existem alguns obstáculos:- O controle remoto
httpdpode rejeitar a conexão porque o URL usado não é o que ele espera, digamos que ele esperehttp://example.com. Você pode corrigir isso redirecionandoexample.compara127.0.0.1no lado local fornecendo seu próprio serviço DNS ou modificando/etc/hosts. Mesmo assim, você precisa se conectar aohttp://example.com:5678. - Talvez você queira usar a porta
80em vez de5678no lado local (portanto, com o truque acima, a URL a ser usada é ahttp://example.comdesejada), mas provavelmente o sistema operacional local não permitirá que você abra portas com números menores que1024, a menos que você sejaroot(ou administrador etc.). A execução desshcomorootnão é recomendada.
- O controle remoto
-
ssh -D 5678 185.68.93.141Nesse caso, você precisa configurar seu navegador local para usar o proxy dinâmico SOCKS4 ou SOCKS5 em
localhost:5678(127.0.0.1:5678). As conexões para qualquer site visitado são estabelecidas pelosshdno lado remoto em nome do navegador. Seu navegador é "visto" como se estivesse conectado a partir do servidor remoto. Agora tudo o que você precisa fazer é usar o URL que funciona ao conectar-se do servidor remoto ao seu própriohttpd(mas se forhttp://localhostou semelhante, lembre-se de que seu navegador local pode ter uma opção como "não usar proxy para endereços locais ").Mais informações aqui .
Se você quiser usar 185.68.93.141 (ou somewebsite.com que resolve para 185.68.93.141 ) como a parte principal do URL em seu navegador local e ainda alcançar o controle remoto sshd apesar da falta da porta 80 encaminhando em 185.68.93.141 , então você precisa fazer o navegador se conectar de acordo com as regras acima de alguma forma. O único ssh não tem como interceptar tráfego do navegador que não coopera.