Netcat von hinter NAT

Netcat von hinter NAT

Ich habe ein Gerät mit dem Internet verbunden, aber es befindet sich hinter einem NAT, was bedeutet, dass ich von außerhalb des Netzwerks nicht direkt per SSH darauf zugreifen kann. Ich habe bereits herausgefunden, dass dieses Problem durch Reverse-SSH-Tunneling umgangen werden kann.

Jetzt möchte ich auf diesem Gerät einen Netcat-Serverprozess ausführen, der wiederum von außerhalb des Netzwerks zugänglich ist. Wie gehe ich dabei vor?

Antwort1

Ich habe es geschafft, das selbst herauszufinden. Es scheint, dass SSH-Tunneling im Grunde Portweiterleitung ist. Ich habe den folgenden Code auf dem Server hinter dem NAT ausgeführt

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

Dadurch wird der Tunnel eingerichtet, der den Verkehr von client:4321nach leitet server:1234, wobei &er im Hintergrund ausgeführt wird. Immer noch auf dem Server habe ich dann Folgendes ausgeführt:

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

Dadurch wird der Netcat-Prozess gestartet myscript.py. Jetzt kann ich von meinem Client aus über Netcat eine Verbindung zum Server herstellen

nc localhost 4321

(Hatte ich nicht ncatauf meinem Client, aber nces hat auch funktioniert. Mein tatsächlicher Anwendungsfall war, die socketBibliothek in Python zum Verbinden zu verwenden, was genauso funktioniert hat)

verwandte Informationen