Volver a la página principal
martes 24 diciembre 2024
135

Cómo usar socat en Linux

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.

¿Qué es y para qué sirve 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:

  • Redirigir puertos o conexiones de red.
  • Configurar túneles seguros.
  • Simular conexiones de red.
  • Leer o escribir en sockets UNIX.
  • Depurar conexiones TCP/UDP.

Tabla de sintaxis básica

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.

Ejemplo de uso básico

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.

Más ejemplos de uso

Conexión entre dos sockets UNIX

socat UNIX-LISTEN:/tmp/socket1 UNIX-CONNECT:/tmp/socket2

Transferencia de un archivo

socat -u FILE:archivo.txt TCP:192.168.1.10:9000

Escuchar y responder con un mensaje

echo "Mensaje de prueba" | socat - TCP-LISTEN:9090
Etiquetas:
linux
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer