web-dev-qa-db-ja.com

ホストのパブリックIPを使用して別のコンテナからコンテナにアクセスする

Proxmoxでネットワークを適切に構成する際に問題が発生しました。

つまり、コンテナから、外部の任意のWebサーバー(例:google.com)にアクセスできますが、コンテナのWebサーバーにアクセスできません。 Webサーバーにはインターネットからアクセスできます。

これがセットアップです:

DNS:mydomain.example-> x.x.x.x/32

ホスト

vmbr0:x.x.x.x venet0 :(各コンテナーへのルーティング)

Iptablesのルール:

iptables -t nat -A PREROUTING -p tcp -d x.x.x.x --dport 80 -i vmbr0 -j DNAT --to-destination y.y.y.z:n
iptables -t nat -A POSTROUTING -o vmbr0 -s y.y.y.0/24 ! -d y.y.y.0/24 -j MASQUERADE

コンテナ

venet0:y.y.y.z

問題

コンテナから実行されるコマンド:

ping google.com:[〜#〜] ok [〜#〜]
ping mydomain.example:[〜#〜] ok [〜#〜]
wget http://google.com[〜#〜] ok [〜#〜]
wget http://mydomain.example[〜#〜] ko [〜#〜]

Resolving mydomain.example... x.x.x.x
Connecting to mydomain.example|x.x.x.x|:80... failed: Connection refused.

私が欠けているものは何ですか?もっと情報が必要ですか?
ありがとう

1
terg

preroutingルールの-iオプションを削除する必要があります。

ここでは、リクエストはvenet0インターフェースから送信されているため、実際のDNATルールは適用されません。

0
krisFR