8
votes

Transfert de port

J'ai une nécessité simple d'un transfert de port de niveau logiciel / tunneling de la communication basée sur la prise.

  • J'ai un serveur source et un port utilisant des sockets. Il s'agit d'un programme Java qui fonctionne à la fois sous Windows et Linux, ce qui n'est pas pertinent.
  • J'ai des périphériques qui continuent à envoyer des données à ce port. Il peut y avoir une communication bidirectionnelle
  • Je veux rediriger ces données sur un autre serveur et port à distance. Donc, pour les clients, ils n'auront pas à s'inquiéter du changement d'adresse IP chaque fois que je déplace mon serveur d'applications.

    Y a-t-il des outils d'outils / deamon / service que je peux utiliser pour configurer et faire cela?

    J'ai essayé SSH, mais à ma compréhension, cela nécessite un serveur compatible avec protocole SSH. Dans mon cas, cela n'est pas applicable. J'ai également essayé d'utiliser JSCH, mais cela est à nouveau une implémentation de SSH au format Java.

    Quelqu'un peut-il lancer des pointeurs? Est-il possible d'utiliser iptables NAT à Linux?


2 commentaires

Utilisez-vous un protocole standard ou votre propre protocole personnalisé?


C'est juste une communication de données TCP / IP.


3 Réponses :


2
votes

Il existe un utilitaire de transfert de port TCP / IP nommé PortForward disponible dans Code .google.com . Il est entièrement écrit en Java.


1 commentaires

Donnera ceci un essai et confirmera si cela conviendrait.



4
votes

Vous pouvez essayer netcat code> ou SOCAT code> (il est plus puissant que NetCat)

Un exemple de SOCAT à transférer le port 80 à l'aide de TCP4: P>

socat tcp4-listen:80,fork tcp4:{another server}:{another port}


4 commentaires

Wow! Comment ai-je oublié ça !! Cependant j'ai une question! La Socat ou NetCat peut-il renouer automatiquement si une connexion est cassée?


Je ne sais pas s'il y a une option intégrée à reconnecter, mais il peut s'agir de la tâche du client de reconnecter si quelque chose ne va pas


Ceci dit "2011/12/04 15:52:25 SOCAT [4328] E Connecter (3, AF = 2 IPAddress: 5000, 16): adresse déjà utilisée". J'ai essayé la commande avec une option réutilisée également.


Juste pour que tout le monde soit bénéficié, la commande que j'ai enfin utilisée "Socat -D -D -D -D -D -D TCP4-Écouter: 9002, Fourchette, réutilisation TCP4: 127.0.0.1: 9000" qui permet un nombre illimité de connexions simultanées. Merci d'avoir répondu.



0
votes

Si vous exécutez xinetd sur votre système déjà, il fournit un simple Mécanisme de transfert de port qui pourrait être utile si vous n'exécutez déjà pas IPTABLES.

Si vous exécutez des iptables, le défaut de serveur dispose d'un excellent, courte question avec Un objectif très similaire . Bien que je trouve un bit terse Une documentation plus détaillée est disponible .


0 commentaires