次のコマンドを使用して、ポート30からポート1234に着信トラフィックを転送しています。しかし、うまくいきません。 Wiresharkには、ポート1234に転送されたパケットの兆候もありません。
sudo iptables -t nat -I PREROUTING --src 0/0 --dst 127.0.0.1 -p tcp --dport 30 -j REDIRECT --to-ports 1234.
答え1
別のポートにあるデータパケットのローカル転送はPREROUTINGチェーンを通過しません。 OUTPUTチェーンに従います。チェーンをPREROUTINGからOUTPUTに変更すると機能します。
sudo iptables -t nat -A OUTPUT -p tcp --dport 30 -j REDIRECT --to-port 1234
iptables NATフィルタの詳細については、こちらをご覧ください。
https://www.karlrupp.net/en/computer/nat_tutorial
答え2
有効になっていることを確認してください。
sudo iptables -t nat -L
エントリがある場合は、次のコマンドを使用して削除します。
sudo iptables -F -t nat
src destフラグなしで試してください:
sudo iptables -t nat -A PREROUTING -p tcp --dport 30 -j REDIRECT --to-ports 1234
有効になっていることをもう一度確認してください。
sudo iptables -t nat -L
デフォルトでは、「OUTPUT」パスで待機しているリンクされたエントリを削除することが重要です。