iptables転送ルールを表示する方法は?

iptables転送ルールを表示する方法は?

着信ポート 80 トラフィックをポート 8080 に転送するために、EC2 インスタンスで次のコマンドを実行しました。

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

何も出力されませんが、配信が実際に機能しているのを見るとき。

コマンドラインで確認しようとしましたが、方法がわかりません。

$ iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

によると、iptables --helpこの-Aオプションにはチェーン名が引数として必要なので、私の場合はチェーン名ですPREROUTING

また、以下に基づいていますiptables --help

--list-rules -S [chain [rulenum]]
Print the rules in a chain or all chains

しかし、私が得るものは次のとおりです。

$ iptables -S PREROUTING
iptables: No chain/target/match by that name.
iptables -S REDIRECT
iptables: No chain/target/match by that name.

私が作成した転送ルールを実際にどのように印刷しますか?

ベストアンサー1

チェーンPREROUTINGはNATテーブル(iptables -t nat)にあるため、テーブルを一覧表示する必要があります。

iptables -t nat -nvL

これを4つのテーブルすべてに一般化できます。

for table in filter mangle nat raw
do
    echo
    echo "Rules for table $table"
    echo
    iptables -t "$table" --line-numbers -nvL
done

おすすめ記事