Introducción:
Últimamente tuve que crear un Proxy TCP bidireccional puro para un proyecto. Para esto hay muchas alternativas como haproxy, nginx, cat and socat y otras. Debido a la simplicidad del comando, decidí usar socat pero también mostraré el comando para cat.
El método NCAT:
El siguiente comando usará una tubería para transportar los datos en ambas direcciones. Solo se puede conectar un cliente a la vez.cd /var/tmp
mkfifo fifo &>/dev/null
/bin/nc -l -p $frontend_port -s $frontend_addr <fifo | /bin/nc $backend_addr $backend_port >fifo
El método SOCAT (¡Mejor!):
Nota:este método ejecuta el comando en una sesión de pantalla, pero no es necesario si el proceso solo se necesita ejecutar temporalmente./usr/bin/screen -d -m /usr/bin/socat -d -d -lmlocal2 \
TCP4-LISTEN:$frontend_port,bind=$frontend_addr,reuseaddr,fork,su=daemon \
TCP4:$backend_addr:$backend_port,bind=$backend_iface_addr