Ping ist einer der am häufigsten verwendeten Netzwerkbefehle in Linux und anderen Betriebssystemen.
Ping wird hauptsächlich verwendet, um zu überprüfen, ob ein entfernter Host erreichbar ist oder nicht. Der entfernte Host kann ein Webserver, Ihr Router oder ein System in Ihrem lokalen Netzwerk sein.
Wie funktioniert Ping? Es sendet tatsächlich kleine ICMP-Pakete an den Remote-Host und wartet auf die Antwort. Wenn der Host aktiv ist, sollten Sie eine Antwort sehen.
Es ist wie die Sonartechnologie, die in U-Booten verwendet wird. Die U-Boote senden Pulse von Audiosignalen und warten auf die Rückkehr des Echos.
Also, wie benutzt man Ping unter Linux? Was sind verschiedene Ping-Befehlsoptionen? Lassen Sie mich Ihnen einige der häufigsten Verwendungen des Ping-Befehls zeigen.
Wussten Sie schon? Der Ping-Befehl wird korrekt als PING geschrieben und steht für Packet Internet Groper.
Ping-Befehl unter Linux verwenden
Sie können den Ping-Befehl entweder mit der IP-Adresse oder dem Hostnamen/der URL verwenden.
Angenommen, ich pinge Google an. Es sendet ICMP-Pakete der Größe 56 Bytes an google.com.
ping google.com
PING google.com (108.177.122.102) 56(84) bytes of data.
64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=1 ttl=42 time=325 ms
64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=2 ttl=42 time=387 ms
64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=3 ttl=42 time=319 ms
64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=4 ttl=42 time=321 ms
^C
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 319.697/338.496/387.785/28.527 ms
Sie müssen den Ping-Befehl manuell stoppen, sonst läuft er weiter. Sie können die Tastenkombination Strg+C verwenden, um den Ping-Befehl unter Linux zu stoppen, wie ich es im obigen Beispiel getan habe.
Wenn Sie den Ping-Befehl stoppen, wird Ihnen eine Zusammenfassung der Übertragung angezeigt. Sie können Statistiken wie die Anzahl der übertragenen ICMP-Pakete, empfangenen Pakete, verlorenen Pakete usw. sehen.
Nachdem Sie nun wissen, wie man unter Linux pingt, sehen wir uns einige der anderen Ping-Befehlsoptionen an.
Sende nur N Pakete
Wenn Sie nicht möchten, dass der Ping-Befehl endlos ausgeführt wird, ohne ihn manuell zu stoppen, können Sie die Option -c verwenden.
Damit können Sie die Anzahl der Pakete angeben, die der Ping-Befehl senden soll, bevor er automatisch stoppt.
ping -c 2 104.248.179.115
PING 104.248.179.115 (104.248.179.115) 56(84) bytes of data.
64 bytes from 104.248.179.115: icmp_seq=1 ttl=50 time=315 ms
64 bytes from 104.248.179.115: icmp_seq=2 ttl=50 time=423 ms
--- 104.248.179.115 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 315.208/369.190/423.172/53.982 ms
Ping nur für begrenzte Zeit senden
Neben der Anzahl der zu sendenden Pakete können Sie auch festlegen, wie lange die Pakete gesendet werden.
Wenn Sie zum Beispiel Ping-Pakete nur für 5 Sekunden senden möchten, können Sie es so verwenden:
ping -w 5 google.com
PING google.com (64.233.177.138) 56(84) bytes of data.
64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=1 ttl=40 time=407 ms
64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=2 ttl=40 time=320 ms
64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=3 ttl=40 time=323 ms
64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=4 ttl=40 time=472 ms
64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=5 ttl=40 time=406 ms
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4002ms
rtt min/avg/max/mdev = 320.634/385.993/472.056/57.309 ms
Ändere das Zeitintervall zwischen zwei Pings
Standardmäßig sendet ping die Pakete im Abstand von einer Sekunde. Sie können dieses Zeitintervall mit der Option -i ändern.
Um die ICMP-Pakete in einem Intervall von 3 Sekunden zu senden, können Sie den Ping-Befehl wie folgt verwenden:
ping -i 3 31.13.90.36
Sie können auch das Zeitintervall zwischen Pings verringern.
ping -i 0.5 31.13.90.36
Wenn Sie jedoch versuchen, das Zeitintervall auf unter 0,2 Sekunden (200 ms) zu verringern, wird ein Fehler angezeigt:
ping -i 0.1 31.13.90.36
PING 31.13.90.36 (31.13.90.36) 56(84) bytes of data.
ping: cannot flood; minimal interval allowed for user is 200ms
Mach dir keine Sorgen. Sie können immer noch mit einem Intervall von weniger als 200 ms pingen. Aber dazu müssen Sie den Ping mit Root-Rechten verwenden.
sudo ping -i 0.1 31.13.90.36
PING 31.13.90.36 (31.13.90.36) 56(84) bytes of data.
64 bytes from 31.13.90.36: icmp_seq=1 ttl=49 time=470 ms
64 bytes from 31.13.90.36: icmp_seq=2 ttl=49 time=372 ms
Paketgröße ändern
Die von Ping gesendete Standard-ICMP-Paketgröße beträgt 56 Byte. Dies kann auch mit Hilfe des Befehls -s geändert werden.
ping -s 100 31.13.90.36
PING 31.13.90.36 (31.13.90.36) 100(128) bytes of data.
108 bytes from 31.13.90.36: icmp_seq=1 ttl=49 time=234 ms
108 bytes from 31.13.90.36: icmp_seq=2 ttl=49 time=257 ms
108 bytes from 31.13.90.36: icmp_seq=3 ttl=49 time=280 ms
^C
--- 31.13.90.36 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 234.208/257.352/280.424/18.867 ms
DoS-Angriff mit Ping-Flooding, auch Ping of Death genannt
Einer der einfachsten DoS-Angriffe ist der Ping of Death. Bei dieser Art von Angriff sendet der Angreifer in sehr kurzer Zeit eine große Anzahl von Ping-Anfragen. Wenn der Server nicht gut konfiguriert ist, wird er bei der Verarbeitung der Ping-Anforderung zusammenbrechen und die Website wird heruntergefahren.
Der Ping-Befehl hat dafür eine eingebaute „Funktion“. Dies wird als Ping-Flooding bezeichnet und kann mit der Option -f erreicht werden. Sie benötigen sudo-Rechte, um diese Option ohne Intervall auszuführen.
sudo ping -f google.com
PING google.com (108.177.122.101) 56(84) bytes of data.
…………………..^C
--- google.com ping statistics ---
1436 packets transmitted, 1413 received, 1% packet loss, time 22837ms
rtt min/avg/max/mdev = 313.887/326.102/388.178/7.464 ms, pipe 26, ipg/ewma 15.914/323.456 ms
Wenn Sie diesen Befehl ausführen, sehen Sie einige Punkte, die in der Ausgabe erscheinen und verschwinden. Jedes einzelne „.“ bezeichnet eine Anfrage, während die Antwort ein Backspace ist (deshalb verschwinden Punkte).
Diese Flood-Ping-Option ist nützlich, um die Lastkapazität eines Servers zu testen.
Bonus-Tipp:Sende hörbare Pings
Sie können hörbare Pings mit der Option -a senden. Damit ertönt bei jedem erfolgreichen Ping ein Signalton.
ping -a google.com
Beachten Sie, dass nicht alle Linux-Distributionen so konfiguriert sind, dass sie den Piepton erzeugen. Ich habe es auf Ubuntu 18.04 getestet und konnte den Signalton hören.
Fehlerbehebung beim Ping-Befehl
Bisher haben wir die erfolgreichen Beispiele des Ping-Befehls gesehen. Aber das wird nicht immer passieren. Lassen Sie uns einige der häufigsten Fehler sehen und den Grund für diese Fehler verstehen.
Keine Antwort auf Ping
Möglicherweise stellen Sie fest, dass bestimmte Hosts nicht auf die Ping-Anfrage antworten. Es scheint, als hätte sich der Ping-Befehl aufgehängt, weil keine Antwort erfolgt. Der Befehl bleibt einfach dort, er läuft nicht einmal ab.
Wenn Sie den Ping-Befehl beenden, sehen Sie seltsame Statistiken.
ping intel.com
PING intel.com (13.91.95.74) 56(84) bytes of data.
^C
--- intel.com ping statistics ---
100 packets transmitted, 0 received, 100% packet loss, time 101362m
Wie Sie sehen können, wurden 100 Pakete übertragen, aber für keines wurde eine Antwort empfangen.
Dies liegt höchstwahrscheinlich daran, dass einige Server die ICMP-Pakete verwerfen. Dies ist eine Sicherheitsmaßnahme, um Ping-Flooding zu vermeiden.
Zielhost nicht erreichbar
Dieser Fehler kann aus einem der beiden folgenden Gründe auftreten:
- Entweder hat das lokale System keine Route zum entfernten Host
- oder der Endpunkt-Router hat keine Route zum entfernten Host
Wenn Sie nur den Fehler „Zielhost nicht erreichbar“ sehen, bedeutet dies, dass Ihr System keine Route zum Remotehost finden konnte.
Wenn Sie andererseits den Fehler im Teil „Antwort von
Manchmal blockieren Server auch den ICMP-Verkehr, der diesen Fehler anzeigen könnte.
Zeitüberschreitung der Anfrage
Dieser Fehler bedeutet, dass die Pakete den Remote-Server erreicht haben, die Antwort Ihr System jedoch nicht erreichen konnte. Das Problem könnten verlorene Pakete oder Routing-Fehler sein.
Bereit zum Ping?
Ich hoffe, dieses Tutorial hat Ihnen geholfen, den Linux-Ping-Befehl besser zu verstehen.
Wenn Sie Fragen oder Anregungen haben, hinterlassen Sie bitte eine Nachricht im Kommentarbereich.