iptables
を使用して、Ubuntuマシンのポートをローカルにリダイレクトしようとしています。透過プロキシに似ています。システムをポート80に残し、リモートのホストとポートにリダイレクトしようとするものをすべてキャッチしたい。
NATおよびiptables
の事前ルーティング関数を使用してこれを実現できますか?
このiptables
ルールを試してください:
$ Sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination IP:80
上記は次のように述べています:
-t nat
)。-A
)を送信トラフィック(OUTPUT
)に送信します。-p tcp
)。--dport 80
)。-j DNAT
)。--to-destination IP:80
)。DNAT
This target is only valid in the nat table, in the PREROUTING and OUTPUT
chains, and user-defined chains which are only called from those chains.
It specifies that the destination address of the packet should be modified
(and all future packets in this connection will also be mangled), and
rules should cease being examined.
これは、特定の宛先ホストへのトラフィックでのみ動作するように、より具体的にすることができます。たとえば、Postfixがミスを犯し、キュー内のメールを古いIPアドレスに送信したい場合などです。
iptables -t nat -A OUTPUT -p tcp -d {ONLY_TO_THIS_DESTINATION} --dport 25 -j DNAT --to-destination {NEW_IP}:25
これにより、ポートをすべてのIPアドレスに変換できます。ここでの主な違いは、--to-destination
フィールドにIPアドレスがないことです。
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination :80