it-swarm.com.de

Verwenden von Netcat für die Portweiterleitung

Ich habe einen Prozess, der einen IP:port Abhört - tatsächlich ist es spark Streaming, das eine Verbindung zu einem Socket herstellt. Das Problem ist, dass ich irgendwie einen Server erstellen möchte, der eine Verbindung herstellt spark an einem Port und Daten werden von einem anderen Port auf diesen Server gestreamt.

Zum Beispiel verwendet das Streaming-Beispiel spark stream) das Dienstprogramm netcat (zum Beispiel nc -lk 5005). Ich habe jedoch einen anderen Dienst, der auf eingehende Nachrichten wartet und dann eine Nachricht ausspuckt Ich benötige eine Art Server, der Nachrichten von Dienst A abhören und an Spark weiterleiten kann.

Mein Service A basiert auf Steckdosen. Und mein spark Verbraucher verlässt sich auf Steckdosen.

Folgendes habe ich bisher getan: die Weiterleitung von Port zu Port, aber dies scheint nicht zu funktionieren:

nc -X 4 -x 127.0.0.1:5005 localhost 5006

Mit der Idee, dass der Dienst A:5005 -> Socket -> 5006 -> Spark

Ich kann anscheinend nicht den richtigen Weg finden, um diese Arbeit zu machen.

Einige Antworten haben Folgendes vorgeschlagen:

socat tcp-l:5005,fork,reuseaddr tcp:127.0.0.1:5006

Mein spark Socket-Empfänger kann keine Verbindung herstellen oder scheint keine Verbindung herzustellen. Ich erhalte die Fehlermeldung: Error connecting to 127.0.0.1:5006 - Java.net.ConnectException: Connection refused

20
disruptive

sie können nicht nur nc für den Weiterleitungsverkehr verwenden, nc haben nicht keep-alive oder fork Modus

sie müssen stattdessen ein anderes Tool verwenden nc; Verwenden Sie beispielsweise socat oder ncat


dieser Befehl überwacht Port 5050 und weiterleiten an Port 2020

socat tcp-l:5050,fork,reuseaddr tcp:127.0.0.1:2020

Ncat ist ein funktionsreiches Netzwerkdienstprogramm, das Daten über die Befehlszeile in Netzwerken liest und schreibt. Ncat wurde für das Nmap Projekt) als stark verbesserte Neuimplementierung des ehrwürdigen Netcat geschrieben

ncat -l localhost 8080 --sh-exec "ncat example.org 80"

Und Sie können andere Tools verwenden:

Hören Sie auf Port 1234 und leiten Sie ihn an Port 4567 unter der Adresse "1.1.1.1" weiter.

./proxy tcp -p ":1234" -T tcp -P "1.1.1.1:4567"

Hören Sie auf Port 1234 und leiten Sie ihn an Port 4567 unter der Adresse "1.1.1.1" weiter Quelle

./gost -L tcp://:1234/1.1.1.1:4567
31