Rediriger le trafic du port TCP vers un autre port afin que l'application Java sache quel port a été utilisé


J'exécute une application serveur Java (Bungeecord si quelqu'un le sait) pour laquelle je code des plugins. Le serveur Bungeecord s'exécute sur le port A mais il faut pouvoir se connecter au serveur sur les ports A et B. Donc, si on se connecte au port A, tout devrait fonctionner comme prévu. Mais si l'on se connecte à B l'entrée de B doit être envoyée au port et la sortie d'une connexion sur B doit être envoyé par le port B.

Le problème est que mon plugin Java pour Bungeecord doit savoir si le client connecté sur A ou B.

Je ne peux pas simplement créer deux instances ServerSocket (une pour le port A et une pour le port B) car cela nécessiterait un modding de Bungeecord (qui n'est pas mon projet). Le faire serait très fastidieux.

Est-il possible de résoudre ce problème sous linux (debian) et avec Java ou dois-je créer ma propre application proxy légère qui fournit des informations pour le plugin Java si une connexion spécifique est connectée ofer A ou B?

Author: Ryan The Leach, 2014-08-25

1 answers

À partir de la couche TCP, une application ne fournit que des informations sur le port sur lequel elle reçoit réellement la connexion, et ce serait le port A dans votre cas. Vous pouvez utiliser un outil comme netcat comme une sorte d ' "entonnoir" afin que les connexions au port A et au port B se retrouvent toujours au port A, mais la couche TCP ne contiendra aucune information à ce sujet.

Si vous devez séparer plusieurs types de connexion qui sont tous reçus sur le même port dans l'application serveur, vous disposez des éléments suivants options:

  • Intégrer des informations sur le type de connexion à la couche application.
  • Distinguer les connexions par le portsource , c'est-à-dire le port du côté client. (Vous pourriez ou ne pourriez pas être en mesure d'utiliser netcat, alors. Vous pouvez toujours utiliser réécriture/traduction d'adresses de port, si.)
 2
Author: Stefan Walter, 2014-09-11 13:14:34