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?


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)

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.


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.


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.


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"

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.


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.


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


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.


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"


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.


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.)


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



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.


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.


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"]
  }
}

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.


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


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.


-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


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.


-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.


-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.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.