(Nota: Jakuje respondeu enquanto eu estava escrevendo minha resposta. É mais elaborado desde o começo, então estou postando mesmo assim.)
Se eu acertar você, tudo que você precisa é encaminhar uma porta local através do SSH. Eu suponho que você tenha acesso SSH a B
.
Comando Linux para executar em A
:
ssh -NL 2345:127.0.0.1:80 B
Agora, você pode se conectar à porta 2345
on A
e deve ser equivalente à conexão com a 80
port em B
do B
em si.
Algumas observações:
-
-N
faz com quessh
não execute um comando no lado remoto (B
); perfeito para encaminhamento de porta. - O número
2345
é arbitrariamente escolhido; pode ser qualquer número de1024
a65535
(a ligação a uma porta menor que1024
requer acesso root normalmente). Se acontecer de você acertar a porta já ocupada, tente outro número. - O endereço
127.0.0.1
que eu usei exige que o seu servidor web emB
escute na interfaceloopback
. Se ele escuta apenas em outros endereços, use-o. Esse endereço deve ser um endereço válido de seu servidor, conforme visto no sistemaB
. Não importa o que este endereço significa paraA
nem se significa algo em primeiro lugar. - Se você precisar que o computador
C
se conecte à porta2345
encaminhada emA
, convém familiarizar-se com a opçãossh -g
. Leiaman ssh
.