AWS EC2-Instanz kann nicht gepingt werden

229

Ich habe eine EC2-Instanz in AWS ausgeführt. Wenn ich versuche, von meiner lokalen Box aus zu pingen, ist dies nicht verfügbar.

Wie kann ich die Instanz pingbar machen?

Santosh s
quelle
Ich pinge meine ec2-Instanzen nicht an, weil ich ICMP in meiner Sicherheitsgruppe nicht nur aktivieren möchte, um zu pingen, sondern um offene Ports zu telneten.
Aderemi Dayo

Antworten:

280

Fügen Sie eine neue eingehende EC2-Sicherheitsgruppenregel hinzu :

  • Typ: Benutzerdefinierte ICMP-Regel
  • Protokoll: Echoanforderung
  • Hafen: N / A.
  • Quelle: Ihre Wahl (ich würde Anywhere auswählen , um von jedem Computer aus pingen zu können)
Rakib
quelle
3
Danke, das gefällt mir. Ich möchte nur das zulassen ping, nicht alle.
Chu-Siang Lai
Benötige ich auch ICMPv6?
Franklin Yu
Könnte das auch versuchen. Aber ICMP hat mir gereicht
Rakib
1
Ich mache überall, aber es konvertiert es automatisch in benutzerdefinierte @SyedRakibAlHasan
alper
25
Es ist leicht, "Echo Reply" mit "Echo Request" zu verwechseln. Das hat mich einen Moment verwirrt.
Andy
100

Ein paar Jahre zu spät, aber hoffentlich hilft das jemand anderem ...

1) Stellen Sie zunächst sicher, dass die EC2-Instanz eine öffentliche IP hat. Wenn hat ein öffentliches DNS oder eine öffentliche IP Adresse haben (siehe unten), sollten Sie gut sein. Dies ist die Adresse, die Sie anpingen. Öffentliche DNS-Adresse von AWS

2) Als nächstes stellen Sie sicher , die Amazon - Netzwerk - Regeln erlauben Echo Requests . Gehen Sie zur Sicherheitsgruppe für die EC2.

  • Rechtsklick auswählen eingehende Regeln aus
  • A: Wählen Sie Regel hinzufügen
  • B: Wählen Sie Benutzerdefinierte ICMP-Regel - IPv4
  • C: Wählen Sie Echo Request
  • D: Wählen Sie entweder Überall oder Meine IP
  • E: Wählen Sie Speichern

Fügen Sie eine Sicherheitsgruppen-ICMP-Regel hinzu, um Pings und Echos zuzulassen

3) Als nächstes blockiert die Windows-Firewall eingehende Echoanforderungen standardmäßig. Erlauben Sie Echoanforderungen, indem Sie eine Windows-Firewall-Ausnahme erstellen ...

  • Gehen Sie zu Start und geben Sie ein Windows Firewall mit erweiterter Sicherheit ein
  • Wählen Sie eingehende Regeln aus

Fügen Sie eine Windows Server-ICMP-Regel hinzu, um Pings und Echos zuzulassen

4) Fertig! Hoffentlich sollten Sie jetzt in der Lage sein, Ihren Server zu pingen.

Sunsetquest
quelle
1
Du hast meinen Tag gerettet !! Vielen Dank
Yugandhar Pathi
3
Beste Antwort bei weitem. Sehr ausführlich.
Brian Webster
2
Die Windows-Firewall war der Schuldige und wurde in anderen Antworten bisher nicht erwähnt.
Crokusek
Ich kann jetzt pingen, aber wissen Sie, wie ich zulassen kann, dass meine Knoten-App, die einen Port überwacht, erreichbar ist?
FluffyBeing
@zeion - Ich habe AWS seit einiger Zeit nicht mehr verwendet (ich war Anfang 2017 in einer Testversion), daher kann ich nicht viel helfen. Das einzige, woran ich denken kann (ich bin sicher, dass Sie es bereits versucht haben), wäre, die oben genannten Elemente zu verwenden, aber für den Port, den Ihre App benötigt. Ich denke, Sie können für den Windows-Firewall-Teil eine neue Regel erstellen, da die vorgefertigte Regel wahrscheinlich nicht aufgeführt wird.
Sunsetquest
84

Sie müssen die Sicherheitsgruppe bearbeiten zu der Ihre EC2-Instanz gehört, und den Zugriff zulassen (oder alternativ eine neue erstellen und die Instanz hinzufügen).

Standardmäßig wird alles abgelehnt. Die Ausnahme, die Sie zur Sicherheitsgruppe hinzufügen müssen, hängt von dem Dienst ab, den Sie dem Internet zur Verfügung stellen müssen.

Wenn es sich um einen Webserver handelt, müssen Sie den Zugriff auf den Port 80für 0.0.0.0/0( dh jede IP-Adresse ) zulassen .

Um das Pingen der Instanz zu ermöglichen, müssen Sie den ICMP-Verkehr aktivieren.

Die AWS Web Console bietet einige der am häufigsten verwendeten Optionen in der entsprechenden Dropdown-Liste.

alkar
quelle
7
Das Aktivieren des All ICMPDatenverkehrs zu den Computern mithilfe der angegebenen Sicherheitsgruppe war für mich ein Vergnügen.
Jonathan Williams
Die Sicherheitsgruppe muss nicht nur erstellt und bearbeitet, sondern auch der Instanz zugeordnet werden. Nur dann wird es wirksam.
MikeW
Mithilfe von Sicherheitsgruppen können Sie den Datenverkehr zu Ihrer Instanz steuern, einschließlich der Art des Datenverkehrs, der Ihre Instanz erreichen kann. `` `1. Überprüfen Sie die Sicherheitsgruppen (aktiviert, dass die PORTS geöffnet sind) 2. Überprüfen Sie die richtige VPC 3. Schließen Sie das richtige Subnetz an 4. AWS EC2 befindet sich im öffentlichen Subnetz 5. Aktivieren Sie das Internet-Gateway` `` Öffnen Sie die Ports in AWS EC2 überprüfen Sie diesen Link offiziell AWS [Link] [1] Die Antwort wird von Tapan Nayan Banker | veröffentlicht Tapan Banker www.tapanbanker.com
Tapan Banker
40

Die benutzerdefinierte ICMP-Regel in der Sicherheitsgruppe ist zumindest für mich nicht erforderlich. Die folgende Regel funktioniert jedoch:

Type: All ICMP 
Protocol: TCP
Port range: 0 - 65535
Source: Anywhere - 0.0.0.0/0

Danach können Sie andere Instanzen anpingen. Sie sollten etwas sehen wie:

PING 10.0.0.15 (10.0.0.15): 56 data bytes
64 bytes from 10.0.0.14: icmp_seq=1 ttl=64 time=3.9 ms
64 bytes from 10.0.0.14: icmp_seq=2 ttl=64 time=3.9 ms
64 bytes from 10.0.0.14: icmp_seq=3 ttl=64 time=10.6 ms
64 bytes from 10.0.0.14: icmp_seq=4 ttl=64 time=40.6 ms
64 bytes from 10.0.0.14: icmp_seq=5 ttl=64 time=3.8 ms
64 bytes from 10.0.0.14: icmp_seq=6 ttl=64 time=5.3 ms
64 bytes from 10.0.0.14: icmp_seq=7 ttl=64 time=6.5 ms
64 bytes from 10.0.0.14: icmp_seq=8 ttl=64 time=3.5 ms
64 bytes from 10.0.0.14: icmp_seq=9 ttl=64 time=21.0 ms
64 bytes from 10.0.0.14: icmp_seq=10 ttl=64 time=3.5 ms
64 bytes from 10.0.0.14: icmp_seq=11 ttl=64 time=3.5 ms
64 bytes from 10.0.0.14: icmp_seq=12 ttl=64 time=59.7 ms
64 bytes from 10.0.0.14: icmp_seq=13 ttl=64 time=3.5 ms
64 bytes from 10.0.0.14: icmp_seq=14 ttl=64 time=3.5 ms
64 bytes from 10.0.0.14: icmp_seq=15 ttl=64 time=4.8 ms
64 bytes from 10.0.0.14: icmp_seq=16 ttl=64 time=3.1 ms
64 bytes from 10.0.0.14: icmp_seq=17 ttl=64 time=3.1 ms
64 bytes from 10.0.0.14: icmp_seq=18 ttl=64 time=3.0 ms
64 bytes from 10.0.0.14: icmp_seq=19 ttl=64 time=3.1 ms

--- 10.0.0.14 ping statistics ---
20 packets transmitted, 19 packets received, 5% packet loss
round-trip min/avg/max = 3.0/9.9/59.7 ms

Das ist es.

Laura Liparulo
quelle
1
Ist damit kein Sicherheitsproblem verbunden?
Victor Anuebunwa
wahrscheinlich sollten Sie die IPs angeben
Laura Liparulo
@avonnadozie, ja, wir sollten nicht alle ICMP-Ports öffnen.
Kartik Narayana Maringanti
1
"Alle ICMP-Ports"? Was bedeutet das? ICMP ist weder TCP noch UDP und hat keine Ports.
David Ongaro
32
  1. Gehen Sie zum EC2-Dashboard und klicken Sie unter "Sicherheitsgruppen" auf "Instanzen ausführen". Wählen Sie die Gruppe Ihrer Instanz aus, für die Sie Sicherheit hinzufügen möchten.
  2. Klicken Sie auf die Registerkarte "Inbound"
  3. Klicken Sie auf die Schaltfläche "Bearbeiten" (ein Popup-Fenster wird geöffnet)
  4. Klicken Sie auf "Regel hinzufügen".
  5. Wählen Sie als Typ die Option "Benutzerdefinierte ICMP-Regel - IPv4"
  6. Wählen Sie "Echo Request" und "Echo Response" als Protokoll (Port Range wird standardmäßig als "N / A" angezeigt)
  7. Geben Sie als Quelle "0.0.0.0/0" ein
  8. Klicken Sie auf "Speichern"
Prasoon
quelle
12

Bitte gehen Sie die folgenden Checklisten durch

1) Sie müssen zunächst prüfen, ob die Instanz in einem Subnetz gestartet ist, in dem sie über das Internet erreichbar ist

Überprüfen Sie dazu, ob an das vom Instanz gestartete Subnetz ein Internet-Gateway angeschlossen ist. Einzelheiten zum Netzwerk in AWS finden Sie unter dem folgenden Link.

öffentliche und private Subnetze in aws vpc

2) Überprüfen Sie, ob Sie die richtigen Sicherheitsgruppenregeln hinzugefügt haben. Wenn nicht, fügen Sie die folgende Regel in der an die Instanz angehängten Sicherheitsgruppe hinzu. Eine Sicherheitsgruppe ist eine Firewall, die an jede gestartete Instanz angehängt ist. Die Sicherheitsgruppen enthalten die eingehenden / ausgehenden Regeln, die den Datenverkehr zulassen Standardmäßig lässt jede Sicherheitsgruppe den gesamten ausgehenden Datenverkehr von der Instanz und keinen eingehenden Datenverkehr zur Instanz zu. Weitere Informationen zum Datenverkehr finden Sie unter dem folgenden Link.

Sicherheitsgruppendokumentation

Typ: benutzerdefiniertes ICMPV4

Protokoll: ICMP

Portrange: Echoanforderung

Quelle: 0.0.0.0/0

Screenshot von der aws-Konsole

3) Überprüfen Sie, ob in der Firewall auf Subnetzebene genügend Regeln mit dem Namen NACL vorhanden sind. Eine NACL ist eine zustandslose Firewall, für die sowohl eingehender als auch ausgehender Datenverkehr separat angegeben werden muss. NACL wird auf Subnetzebene angewendet. Alle Instanzen unter dem Subnetz fallen darunter Die NACL-Regeln. Unten ist der Link, der weitere Details enthält.

NACL-Dokumentation

Eingehende Regeln . Ausgehende Regeln

Typ: Benutzerdefiniertes IPV4 Typ: Benutzerdefiniertes IPV4

Protokoll: ICMP Protokoll: ICMP

Portrange: ECHO REQUEST Portrange: ECHO REPLY

Quelle: 0.0.0.0/0 Ziel: 0.0.0.0/0

Zulassen / Verweigern: Zulassen Zulassen / Verweigern: Zulassen

Screenshot eingehende Regel

Screenshot ausgehende Regel

4) Überprüfen Sie alle Firewalls wie IPTABLES und deaktivieren Sie sie, um den Ping zu testen.

Haneef Mohammed
quelle
Wie eine Antwort zu schreiben . Fügen Sie weitere Details hinzu, um Ihre Antwort zu begründen. und Formatierungswerkzeuge verwenden
Morse
Vielen Dank an Prateek für das Feedback. Ich habe es klarer gemacht.
Haneef Mohammed
Bitte fügen Sie Bilder als Bilder und nicht als Hyperlinks hinzu. Bearbeiten und konvertieren Sie Screenshots in Bilder
Morse
Warum wurde dies abgelehnt? Scheint alles
Witold Kaczurba
Witold, danke für Ihre Besorgnis. Es scheint, dass es ein Formatierungsproblem gab, das zu einer Abwertung geführt hat. Ich habe diese jetzt korrigiert.
Haneef Mohammed
6

Die Erstellung einer neuen Sicherheitsgruppe mit All ICMP hat für mich funktioniert.

Java College
quelle
4

Diejenigen, die neu bei aws ec2 sind und von SSH, Broswer, Ping from systemdort unten auf die Instanz zugreifen möchten, sind die Eingangsregel für diese: -

Geben Sie hier die Bildbeschreibung ein

Yogesh Suthar
quelle
4

Wechseln Sie zur Sicherheitsgruppe der EC2-Instanz und bearbeiten Sie die Eingangsregel "Zulassen 0.0.0.0/0 für ICMP".

Es wird klappen.

Deepak Sharma
quelle
3
1.Go to EC2 Dashboard and click "Running Instances" on "Security Groups"
2.select the group of your instance which you need to add security.  
3.click on the "Inbound" tab
4.Click "Edit" Button (It will open an popup window)
5.click "Add Rule"
6.Select the "Custom ICMP rule - IPv4" as Type
7.Enter the "0.0.0.0/0" as Source or your public IP

7.Klicken Sie auf "Speichern"

Jobin George
quelle
1

Standardmäßig wird EC2 von der AWS Security Group (einem in EC2 und VPC enthaltenen Dienst) gesichert. Sicherheitsgruppen lassen standardmäßig keine ICMP-Anforderung zu, die den Ping enthält. Um es zuzulassen:

Springen: AWS EC2-Instanz suchen: Die Sicherheitsgruppe wird an diese Instanz gebunden (es können mehrere Sicherheitsgruppen vorhanden sein). Überprüfen: ICMP-Port (Inbound Rules for Protocol) (0 - 65535) Wenn dieser nicht vorhanden ist, können Sie ihn hinzufügen und aktivieren Ihre angegebene Quell-IP oder eine andere Sicherheitsgruppe.

Edcel Cabrera Vista
quelle
1

Wenn Sie Ping (von überall) programmgesteuert über das SDK aktivieren möchten, lautet die Zauberformel:

cidrIp:     "0.0.0.0/0"
ipProtocol: "icmp"
toPort:     -1
fromPort:   8

In Scala (unter Verwendung des AWS Java SDK v2) wird beispielsweise Folgendes IpPermissionfür den authorizeSecurityGroupIngressEndpunkt definiert.

  val PingPermission = {
    val range = IpRange.builder().cidrIp( "0.0.0.0/0" ).build()
    IpPermission.builder().ipProtocol( "icmp" ).ipRanges( range ).toPort( -1 ).fromPort( 8 ).build()
  }

(Ich habe versucht, dies ist nur auf EC2-Classic. Ich weiß nicht, welche Ausgangsregeln unter einer VPC erforderlich sein könnten.)

Steve Waldman
quelle
Ich habe dies tatsächlich als ausgehende (Ausgangs-) Regel in meiner Sicherheitsgruppe mit Terraform eingerichtet und es hat wie ein Zauber
funktioniert
1

Mithilfe von Sicherheitsgruppen können Sie den Datenverkehr zu Ihrer Instanz steuern, einschließlich der Art des Datenverkehrs, der Ihre Instanz erreichen kann.

1. Check the Security Groups (Enabled the PORTS to be OPEN)
2. Check the correct VPC 
3. Attached the correct Subnet 
4. AWS EC2 to be in Public Subnet 
5. Enable Internet Gateway 

Öffnen Sie die Ports in AWS EC2. Überprüfen Sie diesen offiziellen AWS- Link

Tapan Banker
quelle
0

Wenn Sie die Regeln als "Benutzerdefinierte ICMP" -Regel und "Echoantwort" an einer beliebigen Stelle einrichten, funktioniert dies wie ein Champion. Die "Echoanforderung" ist die falsche Regel für die Beantwortung von Pings.

Chris Edwards
quelle
14
Die Echo-Antwort hat bei mir nicht funktioniert, die Echo-Anfrage jedoch.
Storm_M2138
0

Ich hatte ein tieferes Problem: Ich hatte eine VPC, ein Subnetz und eine entsprechende Sicherheitsgruppe erstellt, es jedoch versäumt, ein Internet-Gateway hinzuzufügen und es meinem Subnetz zuzuordnen. Da dies mein erstes Google-Ergebnis für "Can't ping ec2" ist, veröffentliche ich diese Informationen hier, falls sie sich für andere (oder mich selbst in Zukunft) als nützlich erweisen.

Tsbertalan
quelle
0

Terraform- spezifische Anweisungen für eine Sicherheitsgruppe, da -1 für mich nicht offensichtlich war.

resource "aws_security_group" "Ping" {
  vpc_id = "${aws_vpc.MyVPC.id}"
  ingress {
    from_port   = -1
    to_port     = -1
    protocol    = "icmp"
    cidr_blocks = ["0.0.0.0/0"]
    ipv6_cidr_blocks = ["::/0"]
  }
}
Xenoterracid
quelle
0

Ich hatte das gleiche Problem beim Versuch, eine Verbindung vom Linux-Server zu EC2 herzustellen. Sie müssen zwei sicherstellen, dass "ALL ICMP" wie oben gezeigt von EC2 hinzugefügt wird und dass dies allein nicht funktioniert. Sie müssen Ansible auf die neueste Version aktualisieren 2.4, es hat mit meiner vorherigen Version 2.2 nicht funktioniert.

ChakEL
quelle
0

Sie müssen den folgenden Sicherheitsport in der Sicherheitsgruppe öffnen. Jede Regel dient unterschiedlichen Zwecken, wie unten gezeigt.

Geben Sie hier die Bildbeschreibung ein

  1. ALL ICMP für Ping.

  2. HTTP für den Zugriff auf die URL am HTTP-Port.

  3. HTTPS für den Zugriff auf die URL am gesicherten HTTP-Port.

Je nach Ihren Anforderungen können Sie SOURCE ändern

Mahesh Varak
quelle
0

Möglicherweise blockiert Ihr internes Netzwerk diese IP-Adresse für Ping oder blockiert das Ping-Paket in Ihrer Firewall, wenn Sie in der Sicherheitsgruppe geöffnet haben und VPC korrekt ist.

Raghunath Babalsure
quelle
-1

Wenn Sie zwei Systeme anpingen, ist standardmäßig SSH aktiviert (wenn Sie eine Verbindung über Putty oder Terminal hergestellt haben). Um Ping zu ermöglichen, habe ich die Sicherheitsgruppe für jede Instanz hinzugefügt (eingehend).

Geben Sie hier die Bildbeschreibung ein

Naveen
quelle
6
Ihre zweite Regel, "All Traffic" von "Anywhere", ist keine gute Idee.
Devin
-3

Beim Zugriff auf neue Ports in der ec2-Instanz. Sie haben an 2 Stellen hinzugefügt. 1. Eingehende Ports der Sicherheitsgruppe. 2. Eingehende Regeln für Firewall-Einstellungen.

Shivaghaneesh
quelle
-3
  1. Stellen Sie sicher, dass Sie die öffentliche IP-Adresse Ihrer aws ec2-Instanz zum Pingen verwenden.

  2. Bearbeiten Sie die Sicherheitsgruppe, die an Ihre EC2-Instanz angehängt ist, und fügen Sie eine eingehende Regel für das ICMP-Protokoll hinzu.

  3. Versuchen Sie, einen Ping-Befehl zu senden. Wenn dies nicht behoben werden kann, fügen Sie der Sicherheitsgruppe eine ausgehende Regel für ICMP hinzu.

M Manjunath
quelle
-4

Ich möchte einige seltene ISP-induzierte Probleme erwähnen. Gelegentlich passiert mir folgendes mit BSNL. Es ist eines dieser seltsamen Probleme, die Stunden in Ihrem täglichen Leben kosten. In einem solchen Fall kann das Problem beim ISP auftreten oder der ISP geändert werden.

  1. Auf die Amazon-Instanz kann über den Browser zugegriffen werden (alle offenen Ports).
  2. Gleiches kann nicht von der Konsole aus gepingt werden
  3. ssh / telnet funktioniert auch nicht.
Ryu_hayabusa
quelle