socat
(SOcket CAT) est un utilitaire en ligne de commande qui permet d'établir des connexions bidirectionnelles entre deux points. Il peut être utilisé pour transférer des données entre des fichiers, des pipes, des périphériques, des sockets, etc. socat
est particulièrement utile pour le dépannage, le test de réseau, et la création de tunnels.
Installation
socat
est disponible dans les dépôts de la plupart des distributions Linux. Vous pouvez l'installer en utilisant le gestionnaire de paquets de votre distribution :
Debian/Ubuntu :
sudo apt-get install socat
CentOS/RHEL :
sudo yum install socat
Fedora :
sudo dnf install socat
Utilisation de Base
La syntaxe de base de socat
est la suivante :
socat [options] <address1> <address2>
Options de Base
-d : Activer le mode de débogage.
socat -d -d TCP4-LISTEN:8080,fork TCP4:www.example.com:80
-v : Activer le mode verbeux.
socat -v TCP4-LISTEN:8080,fork TCP4:www.example.com:80
-l : Activer le mode de journalisation.
socat -lf logfile TCP4-LISTEN:8080,fork TCP4:www.example.com:80
Exemples de Commandes Avancées
Créer un proxy TCP simple :
socat TCP4-LISTEN:8080,fork TCP4:www.example.com:80
Transférer un fichier via un socket TCP :
socat TCP4-LISTEN:8080,fork FILE:/path/to/file
Créer un tunnel SSH :
socat TCP4-LISTEN:8080,fork EXEC:'ssh user@remotehost nc localhost 80'
Créer un tunnel SSL/TLS :
socat OPENSSL-LISTEN:443,cert=server.pem,key=server.key,fork TCP4:localhost:80
Créer un tunnel UDP :
socat UDP4-LISTEN:53,fork UDP4:8.8.8.8:53
Créer un tunnel entre deux fichiers :
socat FILE:/path/to/input FILE:/path/to/output
Créer un tunnel entre un fichier et un périphérique :
socat FILE:/path/to/file DEVICE:/dev/ttyS0
Utilisation de socat
pour le Débogage
socat
peut être utilisé pour déboguer des connexions réseau en mode verbeux :
socat -v TCP4-LISTEN:8080,fork TCP4:www.example.com:80
Utilisation de socat
pour le Test de Réseau
socat
peut être utilisé pour tester des connexions réseau en créant des serveurs et des clients simples :
Créer un serveur TCP simple :
socat TCP4-LISTEN:8080,fork -
Créer un client TCP simple :
socat - TCP4:localhost:8080