netcat de trás do NAT

2

Eu tenho um dispositivo conectado à internet, mas ele está atrás de um NAT, o que significa que não posso ssh diretamente para ele de fora da rede. Eu já descobri que o tunelamento SSH reverso pode contornar esse problema.

Agora, quero executar um processo de servidor netcat neste dispositivo, acessível novamente de fora da rede. Como eu iria fazer isso?

    
por jaswon 01.11.2016 / 00:36

1 resposta

2

Eu consegui descobrir isso sozinho. Parece que o tunelamento ssh é basicamente o encaminhamento de porta. Eu corri o seguinte código no servidor por trás do NAT

ssh -N -R 4321:localhost:1234 user@client &

isso configura o túnel que roteia o tráfego de client:4321 para server:1234 , com o & para executá-lo em segundo plano. Ainda no servidor, eu corri:

ncat -lk -c "python myscript.py" localhost 1234 &

que inicia o processo netcat executando myscript.py . Agora posso me conectar ao servidor do meu cliente via netcat

nc localhost 4321

(Eu não tenho ncat no meu cliente, mas nc também funcionou. Meu caso de uso real foi usar a biblioteca socket em python para conectar, o que funcionou da mesma forma)

    
por 01.11.2016 / 03:11

Tags