Úvod:
V poslední době jsem musel pro projekt vytvořit čistě obousměrný TCP Proxy. K tomu existuje spousta alternativ jako haproxy, nginx, cat a socat a další. Kvůli jednoduchosti příkazu jsem se rozhodl použít socat, ale ukážu také příkaz pro kočku.
Metoda NCAT:
Následující příkaz použije rouru k přenosu dat v obou směrech. Najednou může být připojen pouze jeden klient.cd /var/tmp
mkfifo fifo &>/dev/null
/bin/nc -l -p $frontend_port -s $frontend_addr <fifo | /bin/nc $backend_addr $backend_port >fifo
Metoda SOCAT (nejlepší!):
Poznámka:Tato metoda spustí příkaz v relaci obrazovky, ale není to nutné, pokud je proces potřeba spustit pouze dočasně./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