Pregunta:
Tengo un proceso que escucha en una IP:port
; de hecho, es Spark Streaming que se conecta a un socket. 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 Spark Streaming usa la utilidad netcat (por ejemplo, nc -lk 5005
). Sin embargo, tengo otro servicio que escucha los mensajes entrantes y luego escupe un mensaje. Entonces necesito algún tipo de servidor que pueda escuchar los mensajes del servicio A y pasarlos a Spark.
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
-> enchufe -> 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 se conecta o parece que no se puede conectar. Recibo el error: Error connecting to 127.0.0.1:5006 - java.net.ConnectException: Connection refused
Respuesta:
no puede usar solo nc
para tráfico hacia adelante, nc
no tiene modo de keep-alive
o de fork
debe utilizar otras herramientas en lugar de nc
; por ejemplo, use socat
o ncat
- socat ( código fuente )
este comando escucha en el puerto 5050
y reenvía todo al puerto 2020
socat tcp-l:5050,fork,reuseaddr tcp:127.0.0.1:2020
ncat
leer más
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:
- goproxy : (descargar código fuente o archivo bin )
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"
- gost (Descargar código fuente y bin ) Léame de INGLÉS
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
-
redir ( código fuente )
./redir :1234 1.1.1.1:5678