Minha situação: quero depurar remotamente meu aplicativo c++ com gdbserver e eclipse. O Eclipse está sendo executado na minha estação de trabalho local (na rede 192.168.0.0) e o gdbserver está sendo executado em uma máquina cluster na rede 10.0.0.0. Tenho acesso ssh à máquina cluster por meio de uma máquina que está nas duas redes.
Como posso configurar um túnel para que meu Eclipse possa acessar o gdbserver? Não tenho direitos de administrador/acesso root/sudo.
Todas as máquinas são Linux/Unix com openssh.
Responder1
Acredito que você já possa usar SSH para um sistema na rede privada remota (10.0.0.0). Se o seu sistema local estiver executando o openssh, adicione ao seu $HOME/.ssh/config
:
Host gatewaymachine
LocalForward 12080 remote_ip:portnum
Onde 'remote_ip' é o endereço IP do sistema clustermachine remoto onde o gdbserver é executado e portnum é a porta na qual ele escuta. SSH para gatewaymachine e conecte seu aplicativo ao host local, porta 12080. Por exemplo, se este for um aplicativo da web
http://localhost:12080
Se não estiver usando um aplicativo da web, você precisará configurar suas informações de conexão para refletir que você está indo para a porta 'localhost' '12080' (ou qualquer porta que desejar, veja abaixo).
Em vez de editar sua configuração ssh, você também pode usar parâmetros de comando ssh:
ssh -L 12080:remote_ip:portnum gatewaymachine
(altere 12080 para qualquer porta desejada acima de 1024; abaixo de 1024 e você precisará de acesso root para vincular-se à porta)
Responder2
Basicamente, o que jtimberman disse :). Você pode querer investigarautosshse você tiver problemas para manter o túnel funcionando por longos períodos de tempo.