GNU/Linux >> Tutoriels Linux >  >> Linux

La commande Linux Ping expliquée avec des exemples

Ping est l'une des commandes réseau les plus couramment utilisées sous Linux et d'autres systèmes d'exploitation.

Ping est principalement utilisé pour vérifier si un hôte distant est accessible ou non. L'hôte distant peut être un serveur Web, votre routeur ou un système sur votre réseau local.

Comment fonctionne le ping ? Il envoie en fait de petits paquets ICMP à l'hôte distant et attend la réponse. Si l'hôte est actif, vous devriez voir une réponse.

C'est comme la technologie sonar utilisée dans les sous-marins. Les sous-marins envoient des impulsions de signal audio et attendent le retour de l'écho.

Alors, comment utilisez-vous Ping sous Linux ? Quelles sont les différentes options de commande Ping ? Laissez-moi vous montrer quelques-unes des utilisations courantes de la commande Ping.

Le saviez-vous ? La commande Ping est correctement écrite en tant que PING et signifie Packet Internet Groper.

Utilisation de la commande ping sous Linux

Vous pouvez utiliser la commande ping avec l'adresse IP ou le nom d'hôte/URL.

Supposons que je cingle Google. Il enverra des paquets ICMP d'une taille de 56 octets à 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

Vous devez arrêter manuellement la commande ping sinon elle continuera à fonctionner. Vous pouvez utiliser le raccourci de terminal Ctrl+C pour arrêter la commande ping sous Linux, comme je l'ai fait dans l'exemple ci-dessus.

Lorsque vous arrêtez la commande ping, elle vous présente un résumé de la transmission. Vous pouvez voir des statistiques telles que le nombre de paquets ICMP transmis, de paquets reçus, de paquets perdus, etc.

Maintenant que vous savez comment faire un ping sous Linux, voyons quelques-unes des autres options de commande ping.

N'envoyer qu'un nombre N de paquets

Si vous ne voulez pas que la commande ping s'exécute indéfiniment sans l'arrêter manuellement, vous pouvez utiliser l'option -c.

Avec cela, vous pouvez spécifier le nombre de paquets que la commande ping doit envoyer avant de s'arrêter automatiquement.

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

Envoyer le ping uniquement pour un temps limité

En plus de définir le nombre de paquets à envoyer, vous pouvez également définir la durée d'envoi des paquets.

Par exemple, si vous souhaitez envoyer des paquets ping pendant seulement 5 secondes, vous pouvez l'utiliser comme ceci :

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

Modifier l'intervalle de temps entre deux pings

Par défaut, ping envoie les paquets à un intervalle d'une seconde. Vous pouvez modifier cet intervalle de temps avec l'option -i.

Pour envoyer les paquets ICMP avec un intervalle de 3 secondes, vous pouvez utiliser la commande Ping comme ceci :

ping -i 3 31.13.90.36

Vous pouvez également réduire l'intervalle de temps entre les pings.

ping -i 0.5 31.13.90.36

Cependant, si vous essayez de réduire l'intervalle de temps en dessous de 0,2 seconde (200 ms), une erreur s'affichera :

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

Ne vous inquiétez pas. Vous pouvez toujours envoyer un ping avec un intervalle inférieur à 200 ms. Mais pour ce faire, vous devez utiliser le ping avec les privilèges root.

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

Modifier la taille du paquet

La taille de paquet ICMP par défaut envoyée par Ping est de 56 octets. Cela peut également être modifié à l'aide de la commande -s.

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

Attaque DoS avec Ping flooding aka Ping of Death

L'une des attaques DoS les plus simples est le Ping of Death. Dans ce type d'attaque, l'attaquant envoie un grand nombre de requêtes ping dans un laps de temps très court. Si le serveur n'est pas bien configuré, il s'effondrera dans le traitement de la requête ping et le site Web tombera en panne.

La commande ping a une "fonctionnalité" intégrée pour cela. C'est ce qu'on appelle l'inondation ping et cela peut être réalisé avec l'option -f. Vous aurez besoin des droits sudo pour exécuter cette option avec un intervalle nul.

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

Lorsque vous exécutez cette commande, vous verrez des points apparaître et disparaître dans la sortie. Chaque '.' indique une demande alors que la réponse est un retour arrière (c'est pourquoi les points disparaissent).

Cette option de ping d'inondation est utile pour tester la capacité de charge d'un serveur.

Astuce bonus :envoyer des pings audibles

Vous pouvez envoyer des pings audibles avec l'option -a. Avec cela, vous entendrez un bip pour chaque ping réussi.

ping -a google.com

Notez que toutes les distributions Linux ne sont pas configurées pour émettre le bip sonore. Je l'ai testé sur Ubuntu 18.04 et j'ai entendu le bip.

Dépannage de la commande Ping

Jusqu'à présent, ce que nous avons vu, ce sont les exemples réussis de la commande ping. Mais cela n'arrivera pas tout le temps. Voyons quelques-unes des erreurs courantes que vous pouvez voir et comprenez la raison de ces erreurs.

Pas de réponse pour le ping

Vous remarquerez peut-être que certains hôtes ne répondent pas à la requête ping. Il semble que la commande ping se soit bloquée car il n'y a pas de réponse. La commande reste juste là, elle n'expire même pas.

Si vous terminez la commande ping, vous verrez des statistiques étranges.

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

Comme vous pouvez le voir, 100 paquets ont été transmis mais aucune réponse n'a été reçue pour aucun d'entre eux.

C'est probablement parce que certains serveurs rejettent les paquets ICMP. Il s'agit d'une mesure de sécurité pour éviter l'inondation de ping.

Hôte de destination inaccessible

Cette erreur peut se produire pour l'une des deux raisons :

  • Soit le système local n'a pas de route vers l'hôte distant
  • ou le routeur du point de terminaison n'a pas de route vers l'hôte distant

Si vous ne voyez que l'erreur "Hôte de destination inaccessible", cela signifie que votre système n'a pas pu trouver de route vers l'hôte distant.

D'autre part, si vous voyez l'erreur dans la partie "Répondre de " de la réponse, cela signifie que le paquet a été envoyé en dehors de votre réseau mais qu'il n'a pas pu atteindre la destination.

Parfois, les serveurs bloquent également le trafic ICMP qui pourrait afficher cette erreur.

La requête expire

Cette erreur signifie que les paquets ont atteint le serveur distant mais que la réponse n'a pas pu atteindre votre système. Le problème peut être des paquets perdus ou une erreur de routage.

Prêt à envoyer un ping ?

J'espère que ce tutoriel vous a aidé à mieux comprendre la commande Linux ping.

Si vous avez des questions ou des suggestions, veuillez laisser un message dans la section des commentaires.


Linux
  1. Commande d'arrêt Linux expliquée avec des exemples

  2. Commande Linux nslookup expliquée avec des exemples

  3. Commande Linux Traceroute, expliquée avec des exemples

  4. Commande JQ sous Linux avec exemples

  5. Exemples de commandes ping sous Linux

La commande Linux wget expliquée avec des exemples

Commande Tr sous Linux expliquée avec des exemples

w Commande expliquée avec des exemples sous Linux

Exemples de commandes Linux ping

Explication de la commande Linux tee (avec exemples)

La commande Linux csplit expliquée (avec des exemples)