socat
es una herramienta de línea de comandos en Linux utilizada para transferir datos entre dos puntos de comunicación. Es muy versátil y permite trabajar con redes, puertos, archivos, y otros endpoints, sirviendo como un "Swiss Army Knife" para redireccionamiento y depuración de conexiones.
socat
?
socat
(SOcket CAT) actúa como un intermediario que facilita la transferencia de datos entre diferentes flujos de entrada y salida. Puede ser útil para:
Parámetro | Descripción |
---|---|
SOCKET1
|
Endpoint de origen, como un socket, puerto, o archivo. |
SOCKET2
|
Endpoint de destino, donde se redirige el tráfico. |
-d
|
Habilitar salida detallada para depuración. |
-v
|
Modo verboso para mostrar información sobre las conexiones. |
1. Redirigir un puerto TCP a otro:
socat TCP-LISTEN:8080,fork TCP:127.0.0.1:80
Este comando escucha en el puerto 8080
y redirige el tráfico al puerto 80
en localhost.
2. Crear un servidor simple de echo:
socat -v TCP-LISTEN:12345,fork EXEC:/bin/cat
Este comando crea un servidor en el puerto 12345
que devuelve cualquier dato recibido.
3. Simular una conexión TCP:
socat TCP:192.168.1.10:22 -
Se conecta al puerto 22
(SSH) de un host remoto para pruebas.
socat UNIX-LISTEN:/tmp/socket1 UNIX-CONNECT:/tmp/socket2
socat -u FILE:archivo.txt TCP:192.168.1.10:9000
echo "Mensaje de prueba" | socat - TCP-LISTEN:9090
Jorge García
Fullstack developer