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


ê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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.