Como encaminhar o tráfego do servidor ssh para a minha máquina local?

4

Sou estudante em uma faculdade. Na minha escola, temos essa estranha regra de que depois das 12 da meia-noite, há uma proibição interna da LAN. Isso significa que consigo me conectar à Internet (tráfego externo) enquanto estou sentado no meu quarto, mas não consigo acessar a maioria dos servidores internos (por exemplo, B) pela LAN, exceto por um servidor (digamos, A). Eu posso ssh para essa máquina (A) e pingar outros servidores internos (B) e até mesmo ssh para eles.

Meu Colégio tem seus próprios espelhos hospedados (B) para várias distribuições ( link ). Eu configurei gerenciadores de pacotes para usar este espelho e durante o dia, ele funciona perfeitamente e os downloads acontecem em 10+ MB / s (sua LAN), mas durante as noites em que o LAN Ban está em ação, eu tenho que usar Outros Espelhos Indianos para baixar / atualizar pacotes que são pateticamente lentos em comparação com os primeiros.

O que eu quero alcançar é escrever um script para rotear o tráfego do servidor A para a minha máquina local, já que A pode acessar o espelho (B) mesmo durante as horas de proibição da LAN. Eu pesquisei, mas não consegui o que queria fazer. Em suma, eu quero configurar um proxy reverso como uma coisa que faz minha máquina local acessar o espelho (B) roteando o tráfego de A.

É possível? Eu ainda sou um novato e aprendendo coisas. Qualquer tipo de ajuda seria muito apreciado.

Obrigado antecipadamente!

    
por Mayank Sharma 23.12.2017 / 20:27

1 resposta

4

Vamos cobrir todas as bases possíveis.

Método 1

Em primeiro lugar, para o espelho. mirror.cse.iitk.ac.in é um espelho externo e tem um IP externo. O que significa que você pode acessá-lo com um endereço IP externo. No momento da escrita, isso resolve para 202.3.77.108 . Use isso no seu arquivo de configuração espelho, e você deve obter velocidades tão boas quanto na LAN (na minha experiência).

Método 2

Agora, chegando ao servidor A (que estou assumindo é webhome.cc.iitk.ac.in ). Use um ssh tunnel . Resumindo:

ssh -L8000:mirror.cse.iitk.ac.in:80 <username>@webhome.cc.iitk.ac.in

Mantenha o ssh acima rodando (você pode deamonizar o comando com uma combinação de -N e -f). Agora, no seu arquivo de configuração, em vez de

http://mirror.cse.iitk.ac.in/

use

http://localhost:8000/

Eu escrevi um artigo sobre o encaminhamento de porta quando soube disso. Então isso deve ser útil para entender como o acima dos trabalhos.

Comentários

Próxima dúvida (da minha experiência) será sobre manter ssh conectado em segundo plano (reconectar se desconectar). Olhe para adicionar parâmetros KeepAlive, ServerAliveInterval no arquivo .ssh / config;)

Editar

Notei que nos comentários você disse que o encaminhamento de porta está fora de questão, já que você não tem acesso root no servidor. O comando acima não requer acesso root no servidor por vários motivos.

  1. A porta é mapeada no SEU computador (não no servidor). Por exemplo, você finalmente estará ouvindo localhost:8000 .
  2. Ouvir portas que são maiores que 1024 (8000 neste caso) não requer acesso raiz.

Notas

  1. Se isso fosse https, você estaria encaminhando as solicitações para a porta 443 de mirror.cse.iitk.ac.in (em vez de 80).

  2. A solicitação é assim:

YOU --> localhost:8000 (your PC) --via-ssh-tunnel-> webhome (forwards it to mirror:80) --> mirror.cse.iitk.ac.in (and then the reverse)

    
por 24.12.2017 / 17:02