Tutoriel de la commande ping de Linux pour les débutants (8 exemples)
Quel que soit le type d’utilisateur Linux que tu es (débutant ou pro), il existe certains outils que tu dois connaître. L’un de ces outils est Ping. Dans ce tutoriel, nous allons aborder les bases de cet outil à l’aide d’exemples faciles à comprendre. Mais avant cela, il est bon de mentionner que tous les exemples de l’article ici ont été testés sur une machine Ubuntu 16.04 LTS.
Commande ping de Linux
En termes simples, la commande ping te permet de vérifier si un hôte distant est vivant et répond ou non. Voici la syntaxe de l’outil :
ping [OPTIONS] destination
Et voici comment la page de manuel l’explique :
ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to elicit
an ICMP ECHO_RESPONSE from a host or gateway. ECHO_REQUEST datagrams
(``pings'') have an IP and ICMP header, followed by a struct timeval
and then an arbitrary number of ``pad'' bytes used to fill out the
packet.
ping6 is IPv6 version of ping, and can also send Node Information
Queries (RFC4620). Intermediate hops may not be allowed, because IPv6
source routing was deprecated (RFC5095).
Voici quelques exemples sous forme de questions-réponses qui devraient te donner une bonne idée du fonctionnement de la commande ping.
Q1. Comment utiliser la commande ping ?
L’utilisation de base est assez simple : il suffit d’exécuter la commande ‘ping’ avec la destination en entrée.
Par exemple :
ping howtoforge.com
Voici le résultat produit par cette commande sur mon système :
Note que par défaut, la commande continuera à s’exécuter jusqu’à ce que tu l’arrêtes par Ctrl+C.
Q2. Comment modifier l’intervalle de temps entre les paquets ping ?
Par défaut, il y a un intervalle d’une seconde entre les paquets ping. Cependant, si tu veux, tu peux personnaliser ce délai en utilisant l’option de ligne de commande -i.
Par exemple, la commande suivante s’assure qu’il y a un écart de 3 secondes :
ping -i 3 howtoforge.com
Et la commande suivante envoie des paquets avec un délai d’une demi-seconde.
ping -i 0.5 howtoforge.com
Note que seul le super-utilisateur peut définir l’intervalle à des valeurs inférieures à 0,2 seconde
Q3. Comment modifier la taille des paquets ping ?
Par défaut, le nombre d’octets dans un paquet ping est de 56 (64 si tu inclus 8 octets d’en-tête ICMP). Cependant, si tu veux, tu peux modifier cette valeur, ce que tu peux faire en utilisant l’option de ligne de commande -s.
Par exemple, pour envoyer un paquet de 80 octets (88 en incluant l’en-tête ICMP), utilise la commande suivante :
ping -s 80 howtoforge.com
Q4. Comment faire en sorte que ping envoie un nombre défini de paquets ?
Le comportement par défaut de ping est de continuer à envoyer des paquets jusqu’à ce qu’il soit interrompu par l’utilisateur. Cependant, si tu veux, tu peux forcer ping à arrêter de s’exécuter après avoir envoyé un nombre défini de paquets. Tu peux le faire en utilisant l’option de ligne de commande -c.
Par exemple, la commande suivante enverra 3 paquets puis s’arrêtera.
ping -c 3 howtoforge.com
Q5. Comment lancer un déluge de paquets à l’aide de ping ?
Oui, la commande ping offre également une option pour lancer un déluge de paquets. Tu peux le faire en utilisant l’option de ligne de commande -f.
ping -f howtoforge.com
Voici ce que dit la documentation officielle sur cette option :
For every ECHO_REQUEST sent a period ``.'' is
printed, while for ever ECHO_REPLY received a backspace is
printed. This provides a rapid display of how many packets are
being dropped. If interval is not given, it sets interval to
zero and outputs packets as fast as they come back or one hun?
dred times per second, whichever is more. Only the super-user
may use this option with zero interval.
Q6. Comment faire pour que ping imprime l’horodatage avant chaque ligne ?
Il existe une option (-D) qui te permet de le faire. L’horodatage qui est imprimé est une combinaison de l’heure Unix et de microsecondes (comme dans gettimeofday).
ping -D howtoforge.com
Voici une capture d’écran de cette option en action :
Q7. Comment définir un délai ferme pour le ping ?
Tu peux spécifier un délai d’expiration pour que ping se termine. Pour ce faire, tu peux utiliser l’option de ligne de commande -w qui requiert une valeur numérique représentant le nombre de secondes.
Par exemple, la commande ping suivante s’arrêtera après 3 secondes :
ping -w 3 howtoforge.com
Voici comment les docs officiels expliquent cette option :
Specify a timeout, in seconds, before ping exits regardless of
how many packets have been sent or received. In this case ping
does not stop after count packet are sent, it waits either for
deadline expire or until count probes are answered or for some
error notification from network.
Q8. Comment définir un délai d’attente souple pour ping ?
Alors que l’option -w s’assure que le ping s’arrête dans tous les cas après l’expiration du délai, il existe une autre option (-W, en majuscules) qui fait également s’arrêter le ping, mais uniquement lorsqu’il n’y a pas de réponse du côté de la destination.
ping -W 3 howtoforge.com
Voici comment la page de manuel explique le comportement dans ce cas :
Time to wait for a response, in seconds. The option affects only
timeout in absence of any responses, otherwise ping waits for
two RTTs.
Conclusion
Ping est un outil important qui est presque certainement utilisé pour déboguer les problèmes liés au réseau. Dans ce tutoriel, nous avons abordé certaines des principales fonctionnalités (options de ligne de commande) de cet utilitaire. Mets-les en pratique et, une fois que tu as terminé, consulte lapage de manuel de l’outil pour en savoir plus.