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 EXEC
donde 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