web-dev-qa-db-fra.com

Utilisation de netcat pour la redirection de port

J'ai un processus qui écoute sur un IP:port - en fait c'est spark streaming qui se connecte à une socket. Le problème est que je souhaite en quelque sorte créer un serveur qui se connecte à spark sur l'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, puis recrache un message. J'ai donc besoin d'une sorte de serveur qui peut écouter les messages du service A et les transmettre pour déclencher.

Mon service A, repose sur des sockets. Et mon spark consommateur repose sur des sockets.

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 socket spark ne semble pas ou ne semble pas pouvoir se connecter. J'obtiens l'erreur: Error connecting to 127.0.0.1:5006 - Java.net.ConnectException: Connection refused

20
disruptive

vous ne pouvez pas utiliser uniquement nc pour le trafic direct, nc n'avez pas keep-alive ou fork mode

vous devez utiliser un autre outil à la place nc; par exemple, utilisez socat ou ncat


cette commande écoute sur le port 5050 et tout transférer vers le port 2020

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 très 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 à l'adresse "1.1.1.1" source

./gost -L tcp://:1234/1.1.1.1:4567
31
بارپابابا