あるポートを同じシステムの別のポートにマッピングする

あるポートを同じシステムの別のポートにマッピングする

私のすべてのトラフィックはポート22で発生します。私はすべてのトラフィックをルーティングしたい任意のポート221を選択しました。

これが私が使うルールです

iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 221
or  iptables -t nat -A OUTPUT -p tcp --dport 22 -j REDIRECT --to-ports 221

iptable --list
target     prot opt source               destination         
           tcp  --  anywhere             anywhere             tcp dpt:ssh
           tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:221
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http-alt

コマンドを使用してトラフィックを確認しています。

tcpdump -i any port 221

ポート 221 にルーティングされるものはありません。私は何が間違っていましたか?

ベストアンサー1

受信インターフェイスは IP スタックの前にパケットを確認します。つまり、システム外で発生するパケットには NAT 効果は現れません。宛先ポートが変更されて表示されませんtcpdump。ただし、チェーンのPackjetカウンターで見ることができますfilter/INPUT

これはローカルで生成されたパケットとは異なります。インターフェイスに到達する前にIPスタックに到着します。したがって、ループバックインターフェイスでDNAT効果のあるパケットを見ることができます。

おすすめ記事