Anforderungen von Container an einen anderen Container funktionieren nicht
Ich habe einen dedizierten Server und LXD darauf installiert. Ich habe einen Container für jede Anwendung und einen Container als Proxy für die anderen Container erstellt. Wenn eine Anforderung eingeht (an die IP meines dedizierten Servers), wird sie an den Proxy-Container weitergeleitet und dann an die Anwendungscontainer weitergeleitet.
Dies sind die iptables
Regeln, die ich verwende, um die Ports 80
und 443
auf dem dedizierten Server an die Ports 80
und 443
an meinen Container (ip 10.1.232.241
) weiterzuleiten :
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.1.232.241:80 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 10.1.232.241:443
Dies funktioniert gut für alle Anfragen, die von außen kommen. Es funktioniert nicht für Anforderungen, die vom dedizierten Server an eine Site gerichtet sind, die auf den dedizierten Server verweist. Nehmen wir ein Beispiel: Ich habe eine Website, blog.kindlyfire.me
die auf meinen dedizierten Server verweist. Das Laufen curl blog.kindlyfire.me
funktioniert auf meinem lokalen Rechner, funktioniert jedoch nicht, wenn es direkt auf dem Rechner ausgeführt wird (Hinweis: Es funktioniert auch nicht in einem der Container). Um dies zu umgehen, gehe ich auch in der Kette vor OUTPUT
:
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 10.1.232.241:80 iptables -t nat -A OUTPUT -p tcp --dport 443 -j DNAT --to-destination 10.1.232.241:443
Anforderungen von meinem dedizierten Server an die öffentliche IP-Adresse laufen jetzt einwandfrei. Aber sie laufen noch nicht aus meinen Behältern! Ich dachte, weil die Container die lxdbr0
Schnittstelle benutzen, müsste ich das auch weiterleiten:
iptables -t nat -A PREROUTING -i lxdbr0 -p tcp --dport 443 -j DNAT --to-destination 10.1.232.241:443 iptables -t nat -A PREROUTING -i lxdbr0 -p tcp --dport 80 -j DNAT --to-destination 10.1.232.241:80
Jetzt bekomme ich diese Ausgabe nicht mehr (Befehl läuft in einem meiner Container):
$ curl blog.kindlyfire.me curl: (7) Failed to connect to blog.kindlyfire.me port 80: Connection refused
Stattdessen bekomme ich das:
$ curl blog.kindlyfire.me
Und es sitzt einfach da ...
Ich habe keine Ahnung, was ich als nächstes versuchen soll. Kommen die Pakete nicht zurück? Ich würde gerne etwas Hilfe bekommen, weil ich am Anfang verloren war und jetzt total tot ist ...
0 Antworten auf die Frage
Verwandte Probleme
-
5
Wie richte ich Windows ein, 802.11 gegenüber 3G zu bevorzugen?
-
3
Verwendung von Dual-Ethernet-Buchsen (eine für LAN, eine für WAN)
-
4
Wie richte ich den Netzwerkmanager von Ubuntu / Linux so ein, dass der Netzwerkverkehr selektiv über...
-
12
Wie kann ich den Windows VPN-Routing selektiven Datenverkehr (nach Zielnetzwerk) veranlassen?
-
1
Wie kann ich die Erstellung einer Route in Windows XP bei Verbindung zu Cisco VPN verbieten?
-
2
So teilen Sie zwei Netzwerke für eine Internetverbindung auf
-
2
Protokollierung der Kommunikation zwischen zwei VMs
-
4
Ist es unter Linux iptables möglich, den Namen des Prozesses / Befehls zu protokollieren, der eine a...
-
1
Warum dauert die Ausführung von / sbin / route ein paar Sekunden?
-
1
Probleme beim Anschließen eines Ubuntu-Systems an einen IPv6-Tunnel über NAT