はじめに:
最近、プロジェクト用に純粋な双方向TCPプロキシを作成する必要がありました。このために、haproxy、nginx、cat、socatなどの代替手段がたくさんあります。コマンドが単純なため、socatを使用することにしましたが、catのコマンドも表示します。
NCATメソッド:
次のコマンドは、データを両方向に転送するためのパイプを使用します。一度に接続できるクライアントは1つだけです。cd /var/tmp
mkfifo fifo &>/dev/null
/bin/nc -l -p $frontend_port -s $frontend_addr <fifo | /bin/nc $backend_addr $backend_port >fifo
SOCATメソッド(ベスト!):
注:このメソッドはスクリーンセッションでコマンドを実行しますが、プロセスを一時的に実行する必要がある場合は実行する必要はありません。
/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