着信ポート 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