サーバーからローカルコンピュータBに着信TCPパケットをリダイレクトしようとしています。
ローカルコンピュータA()のアプリケーションクライアントは192.168.0.7
サーバー(1.2.3.4
)に接続されているため、サーバーからのすべてのTCPパケットはポート38xxを介してローカルコンピュータAに到達します。
192.168.0.20
ローカルマシンAの代わりにサーバーからローカルマシンB()にパケットをリダイレクトする方法は?- その後、ローカルコンピュータBからサーバーにパケットを再送信しますが、ローカルコンピュータAから来たように見えるようにするにはどうすればよいですか?
私は以下を試しました:
- ファイルを編集してポート転送を有効にします
sysctl.conf
。 - IPテーブルコマンドを実行します。
iptables -t nat -A PREROUTING -d 192.168.0.7 -p tcp -m tcp --dport 38xx -j DNAT --to-destination 192.168.0.120:38xx
iptables -t nat -A POSTROUTING -j MASQUERADE
しかし、Wiresharkを使用してトラフィックを分析しても何も起こらないようです。
とても感謝しています。
答え1
転送トラフィック:[client] --> [proxy] --> [server-A] --> [server-B]
往復トランスファー:[server-B] --> [server-A] --> [proxy] --> [client]
トラフィックが同じである必要がある場合は、server-A
フォワーディングトラフィックと迷彩トラフィックを設定する必要があります。server-A
からトラフィックが受信されるとproxy
に転送されますserver-B
。
server-B
IPはですが、次のように192.168.0.20
仮定しますserver-A
。
eth0 is facing the proxy
eth1 is facing server-B
TCP 3800 is listening on server-A and server-B respectively
で、server-A
次の操作を行います。
$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
$ sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 3800 -j DNAT --to-destination 192.168.0.20:3800
$ sudo iptables -t nat -A POSTROUTING -j MASQUERADE