Usando netcat para el reenvío de puertos

17

Tengo un proceso que escucha en un IP:port, de hecho, es la transmisión por chispa que se conecta a un zócalo. El problema es que deseo crear de alguna manera un servidor que se conecte a spark en un puerto y los datos se transmitan a este servidor desde otro puerto.

Por ejemplo, el ejemplo de transmisión de chispas utiliza la utilidad netcat (por ejemplo nc -lk 5005). Sin embargo, tengo otro servicio que escucha los mensajes entrantes y luego escupe un mensaje. Así que necesito algún tipo de servidor que pueda escuchar los mensajes del servicio A y pasarlos a la chispa.

Mi servicio A, se basa en enchufes. Y mi consumidor de chispas depende de los enchufes.

Esto es lo que he hecho hasta ahora es el reenvío de puerto a puerto, pero esto no parece funcionar:

nc -X 4 -x 127.0.0.1:5005 localhost 5006

Con la idea de que el servicio A:5005-> socket -> 5006-> Spark

Parece que no puedo encontrar la forma correcta de hacer que esto funcione.

Algunas respuestas han sugerido lo siguiente:

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

Mi receptor de bujías no parece o no puede conectarse. Me sale el error:Error connecting to 127.0.0.1:5006 - java.net.ConnectException: Connection refused

disruptivo
fuente
¿Estás seguro de que el puerto 5006 está abierto? ; ¿Qué es lo que
pasa

Respuestas:

25

no puede usar solo ncpara tráfico hacia adelante, nc no tiene keep-aliveo forkmodo

debes usar otras herramientas en su lugar nc; por ejemplo usar socatoncat


este comando escucha en el puerto 5050y reenvía todo al puerto2020

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

Ncat es una utilidad de red repleta de funciones que lee y escribe datos a través de redes desde la línea de comandos. Ncat fue escrito para el Proyecto Nmap como una reimplementación muy mejorada del venerable Netcat. Eso

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

Y puedes usar otras herramientas:

Escuche en el puerto 1234 y reenvíelo al puerto 4567 en la dirección "1.1.1.1"

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

Escuche en el puerto 1234 y reenvíelo al puerto 4567 en la fuente de la dirección "1.1.1.1"

./gost -L tcp://:1234/1.1.1.1:4567
بارپابابا
fuente
1
Gracias, probé la primera prueba de Socat, pero el problema es que mi instancia de transmisión espera algo allí todo el tiempo y está escuchando a 5006; sin esto, obtengo un error.
disruptivo
ncap también tiene opciones para representantes ... lo que permite algunas cosas interesantes ... ( gostaunque se ve increíble ...)
Gert van den Berg