Usando netcat para encaminhamento de porta

17

Eu tenho um processo que escuta um IP:port- na verdade, é o spark streaming que se conecta a um soquete. A questão é que, de alguma forma, desejo criar um servidor que se conecte ao spark em uma porta e os dados sejam transmitidos para esse servidor a partir de outra porta.

Por exemplo, o exemplo de streaming em spark usa o utilitário netcat (por exemplo nc -lk 5005). No entanto, tenho outro serviço que escuta as mensagens recebidas e depois cuspe uma mensagem. Então, eu preciso de algum tipo de servidor que possa ouvir as mensagens do serviço A e passá-las para acionar.

Meu serviço A depende de soquetes. E meu consumidor de faíscas depende de soquetes.

Aqui está o que eu fiz até agora é o encaminhamento de porta em porta, mas isso não parece funcionar:

nc -X 4 -x 127.0.0.1:5005 localhost 5006

Com a ideia de que o serviço A:5005-> socket -> 5006-> Spark

Não consigo encontrar a maneira correta de fazer isso funcionar.

Algumas respostas sugeriram o seguinte:

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

Meu receptor de vela de ignição não parece ou não consegue se conectar. Eu recebo o erro:Error connecting to 127.0.0.1:5006 - java.net.ConnectException: Connection refused

perturbador
fonte
tem certeza de que a porta 5006 está aberta ?! ; whatis ouput este comando sudo netstat -nltp
بارپابابا

Respostas:

25

você não pode usar apenas ncpara encaminhar tráfego, nc não possui keep-aliveou forkmodo

você deve usar outras ferramentas nc; por exemplo, use socatouncat


este comando escuta na porta 5050e encaminha tudo para a porta2020

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

O Ncat é um utilitário de rede repleto de recursos que lê e grava dados nas redes a partir da linha de comando. O Ncat foi escrito para o Nmap Project como uma reimplementação muito aprimorada do venerável Netcat. isto

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

E você pode usar outras ferramentas:

Ouça na porta 1234 e encaminhe-a para a porta 4567 no endereço "1.1.1.1"

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

Ouça na porta 1234 e encaminhe-a para a porta 4567 na fonte "1.1.1.1"

./gost -L tcp://:1234/1.1.1.1:4567
بارپابابا
fonte
1
Obrigado, tentei o primeiro teste socat, mas o problema é que minha instância de streaming espera algo lá o tempo todo e está ouvindo 5006 - sem isso, recebo um erro.
Disruptive
NCAP também tem opções para proxies ... o que permite algumas coisas interessantes ... ( gostparece incrível embora ....)
Gert van den Berg