Conecta-se à porta durante o funcionamento do ssh tunnel do IntelliJ?

1

Estou trabalhando em um aplicativo de servidor que reside em um servidor Ubuntu 14.x remoto. Esse aplicativo está escutando na porta 8000 na caixa remota. Eu tenho uma sessão SSH adequada, então estou sintonizada na caixa e também tenho a capacidade de sudo.

Eu tenho o IntelliJ no meu sistema Linux local no meu escritório e ele também está rodando o ubuntu 14.x. Eu preciso que ele se conecte à porta 8000 na caixa remota para uma sessão de depuração remota IntelliJ. A porta 8080 na caixa remota não está disponível publicamente.

Existe um utilitário ou truque de tabelas de IP (na caixa remota) ou truque de SSH, etc. que pode fornecer uma porta local em meu sistema para o IntelliJ se conectar e, em seguida, enviará proxy / encaminhará o tráfego de e para essa porta através do túnel SSH para a porta 8000 no sistema remoto? Em outras palavras, fará com que o IntelliJ na minha caixa local pense que está falando diretamente com o aplicativo do servidor na caixa remota, quando, na realidade, a conexão entre eles está passando pelo túnel SSH ativo?

Eu me lembro de fazer algo assim há muito tempo, mas esqueci completamente como, e naquela época o cliente remoto era uma caixa do Windows, então a solução era para sistemas Windows. Desta vez, tanto o sistema local quanto o sistema remoto são servidores do Ubuntu 14.x.

    
por Robert Oschler 25.08.2017 / 22:22

1 resposta

1

Configurar um túnel de encaminhamento na máquina local

autossh -f -N -L 0.0.0.0:8000:localhost:8000 username@remotebox

0.0.0.0:8000 é o que o IntelliJ conectará, ele achará que o aplicativo da Web está sendo executado na máquina local, ligado a todas as interfaces locais e sendo executado na porta 8000.

localhost:8000 é onde o túnel se conectará, no contexto da caixa de controle. localhost não é mais o localhost em que você está trabalhando, mas a interface localhost dentro da máquina do remotebox. Lá ele se conectará à porta 8000, que efetivamente é seu aplicativo da web, a partir do contexto do usuário username .

autossh é um wrapper para ssh que se encarrega de se reconectar automaticamente caso a conexão caia.

Se você estiver usando uma porta não padrão para ssh no remotebox, use o parâmetro -P <PORT> para se conectar a ele.

Essa resposta vale a pena, se acima, não fizer o que você quer: link De lá, eu acabei de explicar o primeiro diagrama. Prefixei a porta local com a interface 0.0.0.0 , acho que o padrão é localhost quando você omitir, o que você pode fazer se quiser. Pode ser mais seguro remover a parte 0.0.0.0: , porque se localhost for o padrão, ninguém na sua rede poderá usar sua máquina para usar esse túnel ssh. Mais para eles, 192.168.10.10:8000 seria um ponto de entrada para o aplicativo da web remoto se 192.168.10.10 fosse o IP da máquina em que você está trabalhando.

    
por 25.08.2017 / 22:41