ncat pode fazer isso facilmente, usando o argumento --sh-exec.
O comando a seguir permitirá que você veja as duas direções de uma conexão TCP ao vivo e permita várias conexões. A conexão com example.com é feita uma vez para cada conexão recebida em localhost:8080 .
ncat -lkv localhost 8080 -c 'tee /dev/stderr | ncat -v example.com 80 | tee /dev/stderr'
Altere os dois comandos tee para tee -a ./file se desejar registrar em um arquivo em vez de exibi-lo ao vivo.
Você também pode remover o -v para desabilitar a saída detalhada, deixando apenas os dados transferidos para o terminal.
-k, --keep-open Accept multiple connections in listen mode
-l, --listen Bind and listen for incoming connections
-v, --verbose Set verbosity level (can be used several times)
-c, --sh-exec <command> Executes the given command via /bin/sh
Veja ncat --help ou man ncat para mais detalhes.