diagram をご覧ください。緑のボックスはiptables
用、青のボックスはebtables
用です(無視してください)。
つまり、OUTPUT
チェーンはローカルアプリケーションによって生成されたパケットに対してのみトラバースされ、POSTROUTING
チェーンは他の場所からルーティングされたパケットを含むすべてのパケットによってトラバースされます。
ネットワークアドレス変換(NAT)には2つのサブケースがあります:[〜#〜] s [〜#〜]NATはsourceパケットのアドレス、[〜#〜] d [〜#〜]NAT変換パケットのdestinationアドレス。
nat/PREROUTING
およびnat/OUTPUT
はDNATを実行できますが、nat/POSTROUTING
およびnat/INPUT
(これがまだ機能するかどうかは不明)がSNATを実行できます。 。
@ x-yuri出力についても混乱しましたNATしかし、最終的には答えがわかりました。プレルーティングとポストルーティングNATは、両方とも外部NATいくつかのパケットがあなたのインターフェースに来るか、それから出て、あなたがしたいときNATアドレス。しかしOUTPUT NATはあなたのローカルネットワーク用ですNAT、つまり、パケットがアプリケーションから始まっているときを意味します。これは、それをよりよく理解するための良い例だと思います。トラフィックのポートとIPアドレスをNginxで行うような透過プロキシとして変更したい場合。次のようなものを使用できます。
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 192.168.100.10:8080
ポート80のトラフィックを、ポート8080でリッスンしているネットワーク192.168.100.10の他のホストに送信します。
それが本当のことだと私が望んでいるポイントであり、あなたが求めていたものだと思います