
Eu tenho um Macbook A
, um servidor público B(public IP: 1.2.3.4, internal IP: 10.0.0.2)
, um servidor internoC(internal IP: 10.0.0.3)
A
pode se conectar B
pelo IP público de B e B
pode se conectar C
pelo IP privado de C, mas A
não pode se conectar diretamente aoC
Agora quero me conectar a C:2345
from A
, então acho que posso fazer o encaminhamento de porta em B:1234=>C:2345
?
Qual comando devo executar e em qual servidor devo executar?
Tentei:
ssh -NfR 1234:localhost:2345 10.0.0.3
ssh -L 1234:0.0.0.0:2345 10.0.0.3
Nenhum dos dois funciona.
Responder1
Pendênciaexatamenteo que você solicitou ( B:1234=>C:2345
) isso deve ser executado B
:
# Not recommended. Read along.
ssh -NgL 1.2.3.4:1234:localhost:2345 10.0.0.3
Também requer a abertura da 1234
porta no B
firewall. Em seguida, conecte-se 1.2.3.4:1234
de fora para chegar 10.0.0.3:2345
como se estivesse se conectando de C
fora (por meio de sua interface de loopback). Qualquer um pode se conectar, então tenha isso em mente se o servidor C
(seja qual for o servidor) não estiver protegido por senha ou algo assim.
Uma maneira mais fácil e segura de ir de A
para C
é a seguinte. Ele não faz exatamente o que você solicitou, mas provavelmente é o que você deseja. Sobre A
:
ssh -NL 1234:10.0.0.3:2345 1.2.3.4
Em seguida, conecte-se a 127.0.0.1:1234
on A
para chegar à porta 2345
on C
. C
verá o tráfego vindo de B
. Esta conexão está disponível A
apenas para, portanto o método é bem mais seguro que o anterior.
Se você deseja permitir que outros computadores (digamos: da LAN onde A
está) se conectem, você deve usar -g
a opção e especificar o endereço de ligação. Por exemplo:
ssh -NgL A_LAN_address_here:1234:10.0.0.3:2345 1.2.3.4
Neste caso, reconfigure o firewall A
adequadamente e conecte-se ao A_LAN_address_here:1234
.
Responder2
No Mac você primeiro faz
ssh -L2345:10.0.0.3:2345 10.0.0.2
Isso abre uma porta local 2345 no seu Mac que é uma conexão direta com: 2345 em 10.0.0.3
Depois é só acessar 127.0.0.1:2345
no seu Mac. Qualquer coisa que vá para esta porta será encapsulada por ssh e irá para 10.0.0.3:2345
. Para esse servidor, parecerá vir de 10.0.0.2
.