ポート8001で受信したパケットのコピーをポート8002にインポートできる必要があります。次の試みたが--tee未定義のエラーが発生します。
sudo iptables -t nat -A PREROUTING -p TCP -s 127.0.0.1 --sport 8001 -j DNAT --to-destination 127.0.0.1:8002 --tee
ベストアンサー1
さらに進むガレブiptables
答え、もはや対象外の最新バージョン(v1.4.14)を使用している場合は、ROUTE
Debian Wheezy*でテストしてください。
iptables -A PREROUTING -t mangle -p tcp ! -s 127.0.0.1 --dport 8001 -j TEE --gateway 127.0.0.1
iptables -A OUTPUT -t nat -p tcp -s 127.0.0.1/32 --dport 8001 -j DNAT --to 127.0.0.1:8002
「netcat」()を使ってman nc
テストします。ターミナルウィンドウに次のように入力し、キーを押しますEnter
。
nc -l 8002
このコマンドは、2番目の端末ウィンドウに入力した入力を待ちます。
2番目の端末ウィンドウに次のように入力し、[次へ]をEnter
クリックします。
nc 127.0.0.1 8001
コマンドは追加の入力を待ちます。何かを入力してEnter
キーを押します。 2番目の端末ウィンドウでキーを押した後、2番目の端末ウィンドウEnter
に入力したテキストが最初の端末ウィンドウに表示されます。Ctrl
セッションを終了するには、2番目のウィンドウで-cを押します。
*この構文はいいえRHEL / Centos(6.5以下)でサポートされています:-(したがって、socat
teeを使用して元のポートから着信パケットを2つの新しいポートに転送する必要があります。元の着信ポートでリッスンするプロセスがある場合は、リッスンするように再構成する必要があります。socat
現在、元のポートのリスナーと同様に、転送されたポートの1つです。このSEポストたとえば、socat
ポート複製構文があります。