Introduzione:
Ultimamente ho dovuto creare un proxy TCP bidirezionale puro per un progetto. Per questo ci sono molte alternative come haproxy, nginx, cat e socat e altri. A causa della semplicità del comando ho deciso di usare socat ma mostrerò anche il comando per cat.
Il metodo NCAT:
Il seguente comando ci fornirà una pipe per trasportare i dati in entrambe le direzioni. È possibile collegare un solo client alla volta.cd /var/tmp
mkfifo fifo &>/dev/null
/bin/nc -l -p $frontend_port -s $frontend_addr <fifo | /bin/nc $backend_addr $backend_port >fifo
Il metodo SOCAT (migliore!):
Nota:questo metodo esegue il comando in una sessione dello schermo ma non è necessario se è necessario eseguire il processo solo temporaneamente./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