Script ejecutivo de Socat en túnel

Script ejecutivo de Socat en túnel

Estoy ejecutando un túnel como este:

socat TCP-LISTEN:9090,fork TCP:192.168.1.3:9090

Me gustaría ejecutar un script para ejecutar código con las cadenas que pasan por el túnel.

El script no cambia las cadenas, solo las procesa de forma independiente pero permite el paso sin cambios entre ambos extremos.

es posible?

Respuesta1

Esposible ahoracon socatv2. socat v2 introduce la idea decadenas de direcciones. Puede ejecutar un script usando EXECdonde stdin/stdout (descriptores de archivo 0 y 1) están conectados al socket de escucha y los descriptores de archivo 3 y 4 están conectados al socket de envío:

socat - "TCP-LISTEN:localhost:8000 | EXEC:myscript.sh | TCP:myserver:80"

En el ejemplo myscript.sh:

  • stdin(fd 0) - lee datos del puerto 8000
  • stdout(fd 1) - escribe datos en el puerto 8000
  • fd 3: lee datos del puerto 80 de myserver
  • fd 4: escribe datos en el puerto 80 de myserver

información relacionada