Warum kann ich meine Amazon EC2-Instanz nicht über die elastische IP-Adresse erreichen?

37

Der Server funktioniert einwandfrei über den von Amazon zugewiesenen DNS-Eintrag, aber ich kann ihn (über einen Browser) nicht über die von Amazon zugewiesene elastische IP-Adresse erreichen. Ping funktioniert auch nicht. Ich versuche zu bestätigen, dass es erreichbar ist, bevor ich die IP-Adresse meinen eigenen DNS-Einträgen hinzufüge.

Guido Anselmi
quelle
1
Sind Sie sicher, dass Sie Ihre elastische IP-Adresse und nicht Ihre private, möglicherweise lokale IP-Adresse verwenden?
@Robert - Hi, die aws. *** -Adresse wird nicht per Ping gesucht (funktioniert aber im Browser), daher weiß ich nicht, wie ich das herausfinden soll. Ich habe versucht, Ping zu verwenden, und ich habe ein paar Internetseiten ausprobiert, die eine Suche durchführen.
@ Piotr - Ja. Es ist die "elastische IP-Adresse", nicht die private IP-Adresse. Es wird auch von Amazon in der Kopfzeile für die Statusregisterkarten verwendet.
Guido, hat es eine öffentliche DNS und Instanz-ID zugewiesen?
@ Piotr - Ja. Und das öffentliche DNS ist über einen Browser erreichbar. Momentan arbeite ich hinter einer Firewall und bin mir nicht sicher, ob dies Auswirkungen haben wird. Ich habe gerade versucht, eine bekannte Site (msn.com) zu pingen, aber das ist fehlgeschlagen. Tethering mein Handy ...
Guido Anselmi

Antworten:

37

Dinge zu überprüfen:

  • Ihre elastische IP mit Ihrer Instanz verbunden?
  • Ihre Sicherheitsinstanzgruppe erlaubt eingehende Verbindungen?
  • Ihre Instanz-Firewall erlaubt eingehende Verbindungen?
  • Ihre Bewerbung hört zu?
Stein
quelle
War Sicherheitsgruppe für mich, danke! Sie haben dies in keinem AWS-Tutorial erwähnt. :(
Emotality
1
Eine andere zu überprüfende Sache: Versuchen Sie, die EC2-Instanz neu zu starten. Dies hat den Trick für mich getan (die elastische IP wurde der Instanz zugeordnet, während sie ausgeführt wurde).
23.
Für mich war es auch Neustart der Instanz, magisch gearbeitet!
Artipixel
Ich habe das gleiche Problem wie OP. Ich habe Punkt 1, 2, 4 in der Antwort überprüft und auch die EC2-Instanz neu gestartet. Wie überprüfe ich den 3. Punkt "Ihre Instanz-Firewall erlaubt eingehende Verbindungen"? Werden eingehende Verbindungen von der EC2-Instanz-Firewall nicht zugelassen?
Indominus
26

Wie bereits erwähnt, lässt die Sicherheitsgruppe für Ihre EC2-Instanz den HTTP-Port möglicherweise nicht zu.

Suchen Sie zuerst die Sicherheitsgruppe, die Ihre Instanz verwendet.

Bildbeschreibung hier eingeben

Wechseln Sie dann unter Netzwerk und Sicherheit zum Abschnitt Sicherheitsgruppen . Wählen Sie die Sicherheitsgruppe Ihrer Instanz aus und fügen Sie eine benutzerdefinierte eingehende TCP-Regel für den Portbereich 80 hinzu.

Sicherheitsgruppen in EC2

James Lawruk
quelle
2
Die 1. passende Antwort - vielen Dank.
Arthur Kushman
2
Ich habe diese Antwort eher akzeptiert, da AWS EC2 standardmäßig eine Instanz ohne geöffneten Port 80 für TCP-Verbindungen erstellt.
Arthur Kushman
Viel bessere Antwort als Stones Antwort. Diese (James ') Antwort sollte als richtige Antwort akzeptiert werden, da es sich um eine tatsächliche Antwort handelt. Stones Antwort ist zu allgemein, dh. Dinge zu überprüfen!
Kannas
Arbeitete für mich .. Ich füge gerade Benutzerdefinierte TCP-Regel mit PORT: 80 hinzu .. Danke
Muhammad Azeem
Oh, das war es! Es hat mich stundenlang verrückt gemacht. Ich habe eine neue Sicherheitsgruppe mit allen korrekten Bindungen erstellt. Überprüfte Firewall auf der Instanz, überprüfte, ob der Webdienst ausgeführt wird oder nicht und die VPC-Sicherheitskonfigurationen. Es stellte sich jedoch heraus, dass die Instanz eine ganz andere Sicherheitsgruppe namens "launch-wizard-1" verwendete !!
Zolbayar
15

Stellen Sie außerdem sicher, dass die Routentabelle der VPC so eingestellt ist, dass IP-Adressen außerhalb der VPC (0.0.0.0/0) vom Subnetz zum Internet-Gateway übertragen werden.

Navigieren Sie zu VPC> Routentabellen. Registerkarte "Route". "Ziel überprüfen" ist der Ziel-Internet-Gateway-ID zugeordnet (außer lokal).

G Seth
quelle
Gemäß der obigen Anweisung habe ich eine Standardroute hinzugefügt, die das Internet-Gateway als Ziel verwendet. Um die Standardroute festzulegen, geben Sie 0.0.0.0/0 als Ziel ein. Nachdem dies erledigt war, konnte ich meine Instanz über das Internet mit der öffentlichen IP-Adresse erreichen
Peter Smallwood,
Für mich geht das. Aber ich bin neugierig, dass ich, bevor ich mich auf diese Weise einrichtete, bereits eine andere Instanz hatte, die über das Internet erreichbar war. Warum kann diesmal nicht?
Shintaroid
10

Fügen Sie einfach diese Antwort hinzu, da sie möglicherweise anderen EC2-Neulingen hilft. Wenn das öffentliche DNS für Ihre EC2-Instanz wie folgt lautet: Öffentliches DNS: ec2-46-137-53-149.eu-west-1.compute.amazonaws.com Sie können unter Verwendung des numerischen Teils der DNS-Adresse auf die Instanz zugreifen. In dem oben genannten Fall http://46.137.53.149/

Offensichtlich muss der entsprechende TCP-Port in der Sicherheitsgruppe / dem Sicherheitsprofil für Ihre Instanz geöffnet sein, wie oben erwähnt.

Die private IP (z. B. 10.235.47.101) ist von außerhalb des AWS-Netzwerks nicht zugänglich und ist nur dann nützlich, wenn Sie einen Cluster von EC2-Knoten haben und eine schnellere Kommunikation zwischen diesen wünschen.

Nelson
quelle
5

Paar Fragen: Auf welchen Port möchten Sie zugreifen? Haben Sie diesen Port für die Sicherheitsgruppen geöffnet? Hat eine Anwendung diesen Port abgehört?

Wenn ich raten müsste, sind Ihre Sicherheitsgruppen nicht richtig eingerichtet. Stellen Sie sicher, dass Sie sie für die richtigen IP-Adressen oder für die Welt (0.0.0.0/0) öffnen, wenn Sie von mehreren IP-Adressen aus auf diesen Port zugreifen.

Wenn dies alles nicht der Fall ist, trennen Sie die IP von der Instanz und ordnen Sie sie neu zu.

Chantheman
quelle
@ Chan-da-man- Ja, Ports sind offen und es gibt eine App, die lauscht. Genau die gleiche URL, mit Ausnahme des mit IP ausgetauschten Domainnamens.
Guido Anselmi
Wenn Sie den vollen Amazon-C-Namen pingen, kommt er mit der elastischen IP zurück?
Chantheman