2

IPTABLES ロジックを理解していないようです。

サーバーにubuntuサーバー11.10を再インストールし、転送をオンにしました(/etc/sysctl.confでnet.ipv4.ip_forward = 1)。サーバーには 2 つのネットワーク インターフェイスがあります。eth0 (ip 192.168.1.1) はローカル ネットワークを参照し、eth1 (ip 213.164.156.130) はインターネットを参照します。

ローカル ネットワークには、IP 192.168.1.2 の別のコンピューターもあります。

次に、ITABLE *nat に 2 つの単純なルールを追加しました。

-A PREROUTING -i eth1 -j DNAT --to-destination 192.168.1.2
-A POSTROUTING -o eth1 -j SNAT --to-source 213.164.156.130

最初のルールは、すべての着信パケットを 192.168.1.2 に転送することを意味すると思いました。

しかし、サーバーから「ping google.com」、「wget google.com」を実行すると、正常に動作します。サーバーはパケットを受信し、転送を行いません。私は本当にこれにこだわっています。

これらのコマンドを 192.168.1.2 から実行した場合、それらも機能します。つまり、ここでは転送が機能します。

4

1 に答える 1

3

これらは NAT ルールです。

最初のルールでは、パケットをルーティングする前にアドレス変換が行われます。宛先アドレスを 192.168.1.2 に変更し、2 番目のルールでは、213.164.156.130 にルーティングする前に送信元アドレスを変更しています。

INPUT チェーンと OUTPUT チェーンにはデフォルトのアクションがあるため、ping と wget を実行できると思います。

TBH、あなたが実際に何をしたいのか混乱していますが、パケットを転送したい場合は、FORWARD チェーンを変更する必要があります。ロジックをよりよく理解できるように、iptables に関する詳細で役立つ情報へのリンクを次に示します。

于 2012-05-11T15:24:21.877 に答える