Usando o netcat para encaminhamento de porta

8

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

Por exemplo, o exemplo de transmissão de centelha usa o utilitário netcat (por exemplo, nc -lk 5005 ). No entanto, eu tenho outro serviço que ouve as mensagens recebidas e, em seguida, cuspiu uma mensagem. Então eu preciso de algum tipo de servidor que possa ouvir as mensagens do serviço A e passá-las para acender.

Meu serviço A, depende de soquetes. E meu consumidor de centavos depende de soquetes.

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

nc -X 4 -x 127.0.0.1:5005 localhost 5006

Com a ideia de que o serviço A:5005 - > soquete - > 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

O meu receptor de tomada de faísca não parece ligar ou não consegue. Eu recebo o erro: Error connecting to 127.0.0.1:5006 - java.net.ConnectException: Connection refused

    
por disruptive 01.07.2016 / 15:17

1 resposta

14

você não pode usar apenas nc para o tráfego de encaminhamento, nc não tem keep-alive ou fork mode

você deve usar outras ferramentas em vez de nc ; por exemplo, use socat ou ncat

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

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

Ncat is a feature-packed networking utility which reads and writes data across networks from the command line. Ncat was written for the Nmap Project as a much-improved reimplementation of the venerable Netcat. It

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 no endereço "1.1.1.1" source

./gost -L tcp://:1234/1.1.1.1:4567
por 01.07.2016 / 15:34