Une application ‘console’ en TCP/IP

La problématique : je dispose d’un binaire fonctionnant en mode console, cad via STDIN / STDOU / STDERR, et je dois le rendre disponible sur Internet via une connexion TCP/IP. La première idée, netcat. Forcément. Ça aurait certainement fonctionné. Mais il y a mieux, un netcat amélioré ! Sisisi … L’outil s’appelle socat.

Voici comment l’utiliser en production sans pour remettre en cause la fiabilité. Socat étant une application assez ancienne et mature, pas plus de risque que ça d’avoir quelque chose d’instable.

Déjà la philosophie de l’outil : établir deux flux bidirectionnels et transférer des données entre ces flux. Ce qui donne par exemple :

socat  TCP4-LISTEN:www  TCP4:www.domain.org:www

Détail : Socat écoute en IPV4 sur le port 80 et transfère tout le trafic sur le serveur http://www.domain.org, port 80 et puis quitte une fois la connexion TCP sur le port 80 fermé.

Pour ma manip de vouloir rendre visible une application console sur un serveur, ceci donne la ligne d’appel suivante :

socat   tcp4-listen:7000,fork   system:/home/phil/RemotePrinter,stderr,pty

Détail : Socat écoute sur le port TCP 7000 et fork à chaque nouvelle connexion, ce qui a pour effet d’accepter un grand nombre de connexion vers le service. Ensuite une fois la connexion établie socat démarre le binaire et organise les transferts de STDIN STDOUT et STDERR.

Conclusion : une applie qu’il est bon de rajouter dans la boite à outil de l’admin système malin.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s