Utilisation de netcat pour la redirection de port

19

J'ai un processus qui écoute sur IP:port- en fait, c'est le streaming d'étincelles qui se connecte à une prise. Le problème est que je souhaite en quelque sorte créer un serveur qui se connecte à spark sur un port et les données sont diffusées sur ce serveur à partir d'un autre port.

Par exemple, l'exemple de streaming spark utilise l'utilitaire netcat (par exemple nc -lk 5005). Cependant, j'ai un autre service qui écoute les messages entrants et recrache un message. J'ai donc besoin d'une sorte de serveur capable d'écouter les messages du service A et de les transmettre à spark.

Mon service A, repose sur des sockets. Et mon consommateur d'étincelles s'appuie sur des prises.

Voici ce que j'ai fait jusqu'à présent, c'est la redirection de port à port, mais cela ne semble pas fonctionner:

nc -X 4 -x 127.0.0.1:5005 localhost 5006

Avec l'idée que le service A:5005-> socket -> 5006-> Spark

Je n'arrive pas à trouver la bonne façon de faire ce travail.

Certaines réponses suggèrent ce qui suit:

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

Mon récepteur de bougie ne semble pas ou ne semble pas se connecter. Je reçois l'erreur:Error connecting to 127.0.0.1:5006 - java.net.ConnectException: Connection refused

perturbateur
la source
êtes-vous sûr que le port 5006 est ouvert?! ; whatis ouput cette commande sudo netstat -nltp
بارپابابا

Réponses:

27

vous ne pouvez pas utiliser uniquement ncpour le trafic vers l'avant, vous nc n'avez pas keep-aliveou le forkmode

vous devez utiliser un autre outil à la place nc; par exemple utiliser socatouncat


cette commande écoute sur le port 5050et transfère tout au port2020

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

Ncat est un utilitaire de mise en réseau riche en fonctionnalités qui lit et écrit des données sur les réseaux à partir de la ligne de commande. Ncat a été écrit pour le projet Nmap comme une réimplémentation bien améliorée du vénérable Netcat. Il

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

Et vous pouvez utiliser un autre outil:

Écoutez sur le port 1234 et transférez-le au port 4567 à l'adresse "1.1.1.1"

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

Écoutez sur le port 1234 et transférez-le au port 4567 sur l'adresse "1.1.1.1" source

./gost -L tcp://:1234/1.1.1.1:4567
بارپابابا
la source
1
Merci, j'ai essayé le premier test socat, mais le problème est que mon instance de streaming attend tout le temps quelque chose et écoute à 5006 - sans cela, je reçois une erreur.
perturbateur
ncap a également des options pour les procurations ... Ce qui permet des choses intéressantes ... ( gostsemble génial quand même ....)
Gert van den Berg