iptablesを使用したローカルポート転送は機能しません。

iptablesを使用したローカルポート転送は機能しません。

次のコマンドを使用して、ポート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」パスで待機しているリンクされたエントリを削除することが重要です。

関連情報