Quel que soit le type d'utilisateur Linux que vous êtes (débutant ou pro), il existe certains outils que vous devez connaître. L'un de ces utilitaires est Ping . Dans ce didacticiel, nous aborderons les bases de cet outil à l'aide d'exemples faciles à comprendre. Mais avant cela, il convient de mentionner que tous les exemples de l'article ici ont été testés sur une machine Ubuntu 16.04 LTS.
Commande ping Linux
Dans la plupart des termes de base, la commande ping vous permet de vérifier si un hôte distant est actif 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 de style questions-réponses qui devraient vous 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 comme entrée.
Par exemple :
ping howtoforge.com
Voici le résultat de cette commande produite sur mon système :
Notez que par défaut, la commande continuera à s'exécuter jusqu'à ce que vous l'arrêtiez via Ctrl+C.
Q2. Comment changer 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 vous le souhaitez, vous pouvez personnaliser ce délai à l'aide de l'option de ligne de commande -i.
Par exemple, la commande suivante s'assure qu'il y a un intervalle 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
Notez que seul le super-utilisateur peut définir l'intervalle sur des valeurs inférieures à 0,2 seconde
Q3. Comment changer la taille du paquet ping ?
Par défaut, le nombre d'octets dans un paquet ping est de 56 (64 si vous incluez 8 octets d'en-tête ICMP). Cependant, si vous le souhaitez, vous modifiez cette valeur, ce que vous pouvez faire en utilisant l'option de ligne de commande -s.
Par exemple, pour envoyer un paquet de 80 octets (88 incluant l'en-tête ICMP), utilisez la commande suivante :
ping -s 80 howtoforge.com
Q4. Comment faire en sorte que le ping envoie un nombre défini de paquets ?
Le comportement par défaut de ping est de continuer à envoyer des paquets jusqu'à ce qu'ils soient interrompus par l'utilisateur. Cependant, si vous le souhaitez, vous pouvez forcer l'arrêt de ping après l'envoi d'un nombre défini de paquets. Vous pouvez 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 flot de paquets en utilisant ping ?
Oui, la commande ping offre également une option pour lancer un flot de paquets. Vous pouvez le faire en utilisant l'option de ligne de commande -f.
ping -f howtoforge.com
Voici ce que disent les documents officiels à propos de 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 un horodatage d'impression ping avant chaque ligne ?
Il y a une option (-D) qui vous permet de faire cela. L'horodatage imprimé est une combinaison d'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 d'attente strict pour le ping ?
Vous pouvez spécifier un délai pour que le ping se termine. Vous pouvez le faire en utilisant l'option de ligne de commande -w qui nécessite 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 la documentation officielle explique 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 le ping ?
Alors que l'option -w garantit 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 arrête également le ping, mais uniquement lorsqu'il n'y a pas de réponse du côté 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 didacticiel, nous avons abordé certaines fonctionnalités principales (options de ligne de commande) de cet utilitaire. Pratiquez-les et une fois que vous avez terminé, rendez-vous sur la page de manuel de l'outil pour en savoir plus.