netcat por trás do NAT

netcat por trás do NAT

Tenho um dispositivo conectado à Internet, mas ele está atrás de um NAT, o que significa que não consigo fazer ssh diretamente nele de fora da rede. 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 faria isso?

Responder1

Eu consegui descobrir isso sozinho. Parece que o tunelamento SSH é basicamente encaminhamento de porta. Executei o seguinte código no servidor atrás do NAT

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

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

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

que inicia a execução do processo netcat myscript.py. Agora posso me conectar ao servidor do meu cliente via netcat

nc localhost 4321

(Eu não tinha ncatno meu cliente, mas nctambém funcionou. Meu caso de uso real foi usar a socketbiblioteca em python para conectar, que funcionou da mesma forma)

informação relacionada