Direkt zum Inhalt

Warum kann meine Amazon EC2-Instance nicht über ein Internet-Gateway auf das Internet zugreifen?

Lesedauer: 4 Minute
0

Meine Amazon Elastic Compute Cloud (Amazon EC2)-Instance in einem öffentlichen Subnetz hat eine öffentliche IP-Adresse oder ein Internet-Gateway, kann aber nicht auf das Internet zugreifen.

Lösung

Voraussetzungen:

  • Ordne dem Subnetz deiner Instance eine Routing-Tabelle zu, die eine Standardroute zu einem Internet-Gateway (0.0.0.0/0) hat.
  • Vergewissere dich, dass du das Internet-Gateway, das der Route zugeordnet ist, nicht gelöscht hast.
  • Konfiguriere die Sicherheitsgruppe, die an die Elastic-Network-Schnittstelle deiner Instance angehängt ist, mit Regeln, die ausgehenden Internetverkehr (0.0.0.0/0) für deine Ports und Protokolle zulassen.
  • Vergewissere dich, dass die Netzwerk-Zugriffssteuerungsliste (ACL), die dem Subnetz deiner Instance zugeordnet ist, Regeln enthält, die sowohl ausgehenden als auch eingehenden Datenverkehr ins Internet zulassen.

Wenn die Instance in einem öffentlichen Subnetz keine öffentliche IP-Adresse hat, ist die Instance außerhalb der Virtual Private Cloud (VPC) nicht zugänglich. Dies gilt auch dann, wenn die Instance über ein Internet-Gateway verfügt.

Um die Instance mit dem Internet zu verbinden, weise eine Elastic-IP-Adresse zu und verknüpfe diese Elastic-IP-Adresse dann mit der Instance.

Prüfe bei Instances mit einer öffentlichen IP-Adresse, ob es eine Firewallregel gibt, die den Internetzugang blockiert, und entferne dann die Regel. Oder deaktiviere die Firewall.

Entferne die Firewallregel, die den Zugriff blockiert

Eine lokale Firewall, die im Betriebssystem ausgeführt wird, blockiert möglicherweise den ausgehenden Zugriff auf bestimmte Ports oder IP-Adressen. Um dieses Problem zu beheben, liste deine Firewallregeln auf und lösche dann diejenigen, die den Zugriff blockieren.

Hinweis: Bevor du Regeln löschst, sichere die Regeln in der Datei.

Linux-Distributionen

Um die Firewallregeln aufzulisten, führe basierend auf der Firewall, die du auf deiner Instance konfiguriert hast, einen der folgenden Befehle aus:

Unkomplizierte Firewall

sudo ufw status numbered

firewalld

sudo firewall-cmd --list-all-zones

iptables

sudo iptables -L --line-numbers

Um eine Firewallregel zu löschen, führe basierend auf der Firewall, die du auf deiner Instance konfiguriert hast, einen der folgenden Befehle aus.

Unkomplizierte Firewall

sudo ufw delete rule_number

Hinweis: Ersetze rule_number durch die Firewallregel, die du löschen möchtest.

firewalld

sudo firewall-cmd --zone=zone --remove-rich-rule=rule --permanent
sudo firewall-cmd --reload

Hinweis: Nachdem du --permanent Regeln entfernt hast, musst du die Firewall neu laden, damit die Änderungen sofort in der Laufzeitkonfiguration wirksam werden.

iptables

sudo iptables-save > iptables_backup.txt
sudo iptables -D chain rule_number

Windows Server

Führe den folgenden Befehl aus, um die Firewallregeln für eine Windows-Server-Standardfirewall aufzulisten:

netsh advfirewall firewall show rule name=all

Wenn eine der Regeln aus der Ausgabe des vorherigen Befehls blockierten Verkehr anzeigt, führe den folgenden Befehl aus, um die Firewallregel zu entfernen:

netsh advfirewall firewall delete rule name=rule_name

Hinweis: Ersetze rule_name durch den Namen der Firewallregel, die den Verkehr blockiert.

Weitere Informationen findest du auf der Microsoft Learn-Website unter Windows-Firewalltools.

Deaktiviere die Firewall

Linux-Distributionen

Du kannst auch die lokale Firewall deaktivieren und stattdessen Sicherheitsgruppen verwenden.

Hinweis: Die Deaktivierung der Firewall kann sich auf deinen Workload auswirken.

Führe einen der folgenden Befehle aus, um deine Firewall zu deaktivieren:

Unkomplizierte Firewall

sudo ufw disable

firewalld

sudo systemctl disable firewalld --now

iptables

sudo systemctl disable iptables

Wenn du eine Firewall verwenden musst, führe einen der folgenden Befehle aus, um ausgehenden Datenverkehr zuzulassen:

Unkomplizierte Firewall

sudo ufw default allow outgoing

iptables

sudo iptables P OUTPUT ACCEPT
sudo iptables I OUTPUT j ACCEPT

Hinweis: Standardmäßig lässt firewalld den gesamten ausgehenden Datenverkehr vom System für jede Zone zu, es sei denn, es gibt keine Rich-Regel.

Windows Server

Führe den folgenden Befehl aus, um die Windows-Firewall für die Standardfirewall von Windows Server zu deaktivieren:

netsh advfirewall set allprofiles state off

Weitere Informationen findest du auf der Microsoft Learn-Website unter Windows-Firewalltools.

Ähnliche Informationen

Aktiviere den Internetzugang für eine VPC mithilfe eines Internet-Gateways

Warum kann ich NAT nicht verwenden, um meine EC2-Instance in einem privaten Subnetz mit dem Internet zu verbinden?