Einführung:
In letzter Zeit musste ich für ein Projekt einen reinen bidirektionalen TCP-Proxy erstellen. Dafür gibt es viele Alternativen wie Haproxy, Nginx, Cat und Socat und andere. Wegen der Einfachheit des Befehls habe ich mich für socat entschieden, werde aber auch den Befehl für cat zeigen.
Die NCAT-Methode:
Der folgende Befehl verwendet eine Pipe, um die Daten in beide Richtungen zu transportieren. Es kann immer nur ein Client verbunden sein.cd /var/tmp
mkfifo fifo &>/dev/null
/bin/nc -l -p $frontend_port -s $frontend_addr <fifo | /bin/nc $backend_addr $backend_port >fifo
Die SOCAT-Methode (am besten!):
Hinweis:Diese Methode führt den Befehl in einer Bildschirmsitzung aus, muss dies aber nicht, wenn der Prozess nur vorübergehend ausgeführt werden muss./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