Présentation :
Dernièrement, j'ai dû créer un proxy TCP bidirectionnel pur pour un projet. Pour cela, il existe de nombreuses alternatives comme haproxy, nginx, cat et socat et autres. En raison de la simplicité de la commande, j'ai décidé d'utiliser socat, mais j'afficherai également la commande pour cat.
La méthode NCAT :
La commande suivante utilisera un tube pour transporter les données dans les deux sens. Un seul client peut être connecté à la fois.cd /var/tmp
mkfifo fifo &>/dev/null
/bin/nc -l -p $frontend_port -s $frontend_addr <fifo | /bin/nc $backend_addr $backend_port >fifo
La méthode SOCAT (la meilleure !) :
Remarque :cette méthode exécute la commande dans une session screen mais n'a pas besoin de le faire si le processus n'est nécessaire que temporairement pour être exécuté./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