この引用文では、これを行う方法が説明されているはずですが、わかりません...
次に、すべての http リクエスト (ポート 80 に着信) を Squid サーバー ポート 3128 に転送するための次のルールを追加しました。
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
と
iptables -t nat -A PREROUTING -i venet0 -p tcp --dport 80 -j DNAT --to 127.0.0.1:3128
iptables -t nat -A PREROUTING -i venet0:0 -p tcp --dport 80 -j REDIRECT --to-port 3128
これは動作するはずですが、動作しません。私のiptables
は空で、/etc/network/interface
次のようになります。
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0
broadcast 127.255.255.255
up ip route replace 127.0.0.0/8 dev lo
# Auto generated venet0 interfaces
auto venet0
iface venet0 inet static
address 127.0.0.1
netmask 255.255.255.255
broadcast 0.0.0.0
up route add default dev venet0
iface venet0 inet6 static
address ::2
netmask 128
up ip -6 r a default dev venet0
up ip addr add {...externalIPv6...} dev venet0
auto venet0:0
iface venet0:0 inet static
address {...externalIP...}
netmask 255.255.255.255
答え1
まだ答えになっていないかもしれませんが、私はこれを答えとして始めます (うまくいけばまだです)。私がこれをする理由は、この問題を解決するには数回の繰り返しが必要になると信じているからです。
iptables ルールは問題ないように見えますが、/etc/network/interfaces ファイルにはいくつか問題があると思います。どこかからコピーしたのでしょうか、それともニーズに合わせて調整したのでしょうか?
私が見ている問題点:
- ループバック インターフェイスを指定するのはなぜですか? 通常、スタンザの最初の 2 行は問題ありません。
- 同じインターフェース venet0 に 2 つのアドレスを割り当てています。
- 最初の venet0 スタンザのネットマスクは制限が厳しすぎるため、ブロードキャスト アドレスと一致しません。
- venet0 の 2 番目のスタンザには、外部 IPv6 アドレスと ::2 の 2 つのアドレスが割り当てられています。
- venet0 のスタンザでは、ネットマスクの制限が厳しすぎます。
- まったく同じインターフェース、venet0/venet0:0 にループバック アドレスと外部アドレスの両方が割り当てられていますが、その意味は何でしょうか?
VMWare で何をしようとしているのかを教えていただけると助かります。今のところ、困惑しています。