Utilizzo di netcat per il port forwarding


17

Ho un processo che ascolta un an IP:port- in effetti è lo streaming spark che si collega a una presa. Il problema è che desidero in qualche modo creare un server che si connette a spark su una porta e i dati vengono trasmessi in streaming su questo server da un'altra porta.

Ad esempio, l'esempio dello streaming spark utilizza l'utilità netcat (ad esempio nc -lk 5005). Tuttavia, ho un altro servizio che ascolta i messaggi in arrivo e quindi sputa un messaggio. Quindi ho bisogno di un qualche tipo di server in grado di ascoltare i messaggi dal servizio A e passarli a scintilla.

Il mio servizio A si basa su socket. E il mio consumatore di scintille si affida alle prese.

Ecco quello che ho fatto finora è l'inoltro da una porta all'altra, ma questo non sembra funzionare:

nc -X 4 -x 127.0.0.1:5005 localhost 5006

Con l'idea che il servizio A:5005-> socket -> 5006-> Spark

Non riesco a trovare il modo corretto per farlo funzionare.

Alcune risposte hanno suggerito quanto segue:

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

Il mio ricevitore per candele non sembra o non riesce a connettersi. Ottengo l'errore:Error connecting to 127.0.0.1:5006 - java.net.ConnectException: Connection refused


sei sicuro che la porta 5006 sia aperta ?! ; whatis ouput this command sudo netstat -nltp
بارپابابا

Risposte:


25

non puoi utilizzare solo ncper il traffico forward, nc have have keep-aliveo forkmode

devi invece usare altri strumenti nc; ad esempio usare socatoncat


questo comando ascolta sulla porta 5050e inoltra tutto alla porta2020

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

Ncat è un'utilità di rete ricca di funzionalità che legge e scrive i dati attraverso le reti dalla riga di comando. Ncat è stato scritto per il progetto Nmap come una reimplementazione molto migliorata del venerabile Netcat. esso

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

E puoi usare altri strumenti:

Ascolta sulla porta 1234 e inoltra alla porta 4567 sull'indirizzo "1.1.1.1"

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

Ascolta sulla porta 1234 e inoltra alla porta 4567 sull'indirizzo "1.1.1.1" sorgente

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

1
Grazie, ho provato il primo test socat, ma il problema è che la mia istanza di streaming si aspetta sempre qualcosa lì e sta ascoltando il 5006 - senza questo, ricevo un errore.
dirompente il

ncap ha anche opzioni per i proxy ... Il che consente alcune cose interessanti ... ( gostsembra fantastico però ....)
Gert van den Berg
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.