GNU/Linux >> Tutoriels Linux >  >> Linux

Commande Ping pratique dans des exemples Linux

Un outil indispensable pour l'administration réseau est la commande Ping sous Linux. Vous avez peut-être utilisé ping avant pour le dépannage de base, mais que fait cette commande ?

Pas un lecteur? Regardez ce didacticiel vidéo associé ! Vous ne voyez pas la vidéo ? Assurez-vous que votre bloqueur de publicités est désactivé.

Le ping La commande envoie des requêtes ICMP (Internet Control Message Protocol) à des hôtes distants ou locaux et attend une réponse. Aucune réponse pourrait indiquer un problème avec la connexion ou les hôtes eux-mêmes.

Poursuivez votre lecture et explorez les manières pratiques d'utiliser la commande ping sous Linux !

Prérequis

Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous d'avoir un ordinateur Linux avec une connexion Internet. Ce tutoriel utilise un ordinateur Ubuntu 20.04.

Assurez-vous également que vous avez déjà ouvert une session de terminal sur votre ordinateur Linux.

Vérification de la connectivité du réseau local

Imaginez que vous développez une application Web. Le test échoue lorsque vous essayez d'accéder à l'application via l'adresse de bouclage de l'hôte (127.0.0.1). Avant de vous arracher les cheveux pour dépanner l'application, assurez-vous que le protocole TCP/IP fonctionne en interne en utilisant le ping commande.

Les adresses de bouclage par défaut sont 127.0.0.1 et 0:0:0:0:0:0:0:1 (ou ::1) pour IPv4 et IPv6, respectivement.

Pour vérifier la connectivité de l'adresse de bouclage, exécutez le ping ci-dessous commande suivie de l'adresse de bouclage sur le terminal. Cette commande illustre l'utilisation la plus basique du ping commande sous Linux.

ping 127.0.0.1

Et si le bouclage fonctionne correctement, vous devriez voir une sortie similaire à la capture d'écran ci-dessous.

Vous pouvez également envoyer un ping au localhost hostname devrait donner le même résultat car il résout l'adresse de bouclage par défaut.

Pour terminer le ping commande, appuyez sur CTRL+C sur la borne. Sinon, la commande ping s'exécutera en continu.

Remarque :n'appuyez pas sur CTRL+Z pour arrêter la commande ping. Cela arrêtera la commande, mais le processus continuera de s'exécuter en arrière-plan.

Comprendre la sortie Linux de la commande Ping

Avant d'aller plus loin, vous gagneriez à comprendre explicitement la sortie au lieu de l'interpréter uniquement comme "ça marche". Reportez-vous à l'image ci-dessous et à la répartition des valeurs qui suit.

  • Un (bytes ) – Affiche la taille de la demande d'écho ICMP (paquet) en octets.
  • B (from ) - Affiche l'adresse IP de l'hôte cible from où le ping la commande reçoit la réponse.
  • C (icmp_seq ) – Indique l'ordre de transmission des paquets. Comme vous pouvez le voir, ping envoie les requêtes ICMP en séquence. La valeur affiche icmp_seq=N , où N est le numéro de commande.
  • D (TTL ) – Affiche la valeur de durée de vie (TTL) de la requête ICMP. La valeur par défaut est 64, ce qui signifie que la demande ne peut vivre que jusqu'à un maximum de 64 sauts et expirera après. La valeur maximale possible est 255.
  • E (time ) – Le temps total (millisecondes) écoulé pendant lequel la demande a atteint la destination et est retournée à la source. Cette valeur est également connue sous le nom de temps d'aller-retour (RTT). Notez que le time les valeurs sont inférieures à 0,1 millisecondes dans cet exemple puisque la cible est la même machine. Le time la valeur augmente naturellement lorsque le ping les destinations sont éloignées ou ont une adresse Internet.
  • F (statistics ) – Affiche le résumé et les statistiques du ping résultats de la commande. Le résumé indique le nombre de paquets transmis et reçus, le pourcentage de perte de paquets et la durée totale. La ligne du bas indique le minimum, la moyenne (valeur moyenne), le maximum et l'écart type du RTT total.

Forcer la version du protocole Internet

La commande ping utilise l'IPv4 par défaut. Mais que se passe-t-il si vous testez la compatibilité de votre application avec IPv6 ? Pour forcer la commande ping à utiliser IPv6, vous devez spécifier l'option -6 à votre commande ping sous Linux, comme vous pouvez le voir dans le code ci-dessous.

ping -6 localhost

Comme vous pouvez le voir ci-dessous, la réponse de indique que la réponse provient de l'adresse de bouclage IPv6 (::1).

Au lieu de l'option -6, l'option -4 force ping à utiliser IPv4. Mais comme le ping est par défaut sur IPv4, vous n'avez généralement pas besoin de spécifier l'option -4.

Limiter le nombre de réponses

Dans les exemples précédents, vous deviez appuyer sur CTRL+C pour mettre fin à la commande ping car sinon, elle s'exécuterait en continu.

L'option -c vous permet de spécifier le nombre de réponses que la commande ping reçoit avant de s'arrêter. Pourquoi utiliser cette option ? Dans certains cas, vous souhaiterez peut-être tester la réponse de votre système à 10, 100, 1 000 paquets ICMP, etc.

Exécutez la commande suivante pour envoyer cinq paquets ICMP à l'hôte cible. Remplacez 5 par le nombre de réponses ICMP à recevoir avant d'arrêter.

ping -c 5 localhost

Comme vous pouvez le voir ci-dessous, la commande ping s'est arrêtée après la cinquième requête (icmd_seq=5), et vous n'avez pas eu besoin d'appuyer sur CTRL+C pour y mettre fin.

Ajustement de l'intervalle de requête

Supposons que vous souhaitiez tester la connexion réseau entre deux appareils et que l'un d'eux ait une faible bande passante. Dans ce cas, vous pouvez augmenter l'intervalle entre chaque demande afin que le deuxième appareil ait suffisamment de temps pour traiter le paquet ICMP en cours.

Le ping La commande envoie la requête ICMP suivante une seconde après avoir terminé la précédente par défaut. Pour régler le délai, vous devez spécifier le -i option suivie de la valeur du délai en secondes.

Par exemple, exécutez le ping ci-dessous commande pour envoyer cinq requêtes ICMP avec un intervalle de deux secondes entre les requêtes.

ping -c 5 -i 2 localhost

Un autre exemple, exécutez le ping ci-dessous commande pour envoyer cinq requêtes ICMP avec un intervalle d'une demi-seconde entre chaque requête.

ping -c 5 -i 0.5 localhost

La comparaison des résultats des deux commandes ayant des intervalles différents montre la différence entre le total time valeurs.

Simuler une attaque par inondation

Une inondation ping est un type d'attaque par déni de service (DoS) dans laquelle l'attaquant tente de submerger un appareil ciblé avec des paquets ICMP. L'attaque vise à submerger la machine ciblée pour répondre à tant de demandes qu'elle devient surchargée et indisponible pour les utilisateurs légitimes.

Vous pouvez simuler une attaque par inondation pour tester la façon dont votre système réagit à une attaque. Ne vous inquiétez pas, cependant. La simulation d'inondation ping est contrôlée et vous pouvez l'arrêter à tout moment en appuyant sur CTRL+C.

Exécutez la commande suivante sur votre machine locale pour voir combien de requêtes votre appareil peut gérer par seconde. Le -f signifie envoyer plusieurs paquets ping rapidement et sans limite arbitraire.

Remplacez localhost par l'adresse IP ou le nom d'hôte de l'application que vous souhaitez tester. Cet exemple simule l'inondation ping sur l'hôte local uniquement. Laissez la commande ping s'exécuter pendant environ cinq secondes, puis appuyez sur CTRL+C pour terminer.

La commande ping -f nécessite que vous soyez l'utilisateur root ou que vous ayez des privilèges sudo.

ping -f localhost

Comme vous pouvez le voir ci-dessous, la commande ping a réussi à envoyer et recevoir 124,685 Paquets ICMP dans 4276 millisecondes avec 0% perte de paquets. Plutôt bien, hein ? Mais, dans un cas d'utilisation réel, vous constaterez une perte de paquets. La perte de paquets est inévitable car le réseau n'est pas parfait.

Vérification de la connectivité Internet

Tout le monde utilise Internet d'une manière ou d'une autre, n'est-ce pas ? Supposons que vous essayez de charger un site Web à l'aide de votre navigateur, mais que le temps de chargement de la page semble lent. Le symptôme indiquerait que la résolution DNS fonctionne, mais quelque chose affecte la vitesse du réseau.

Diagnostiquer le problème sans outils tiers inclurait le ping commande. L'utilisation de la commande est la même que lorsque vous testez la connectivité du réseau local. Mais au lieu de cibler l'adresse de bouclage, vous spécifiez une adresse IP ou Web publique.

Exécutez la commande ci-dessous pour envoyer un ping à un site Web public externe. Remplacez adamtheautomator.com avec une autre adresse Web comme vous le souhaitez.

ping -c 5 adamtheautomator.com

Dès le départ, vous remarquerez que la valeur temporelle est relativement plus élevée que lorsque vous pingez l'hôte local. Cette augmentation du temps passé est due à l'adresse cible adamtheautomator.com n'est pas dans le même hôte et même pas sur le même réseau.

Dans les étapes précédentes, votre commande ping a réussi, mais dans le monde réel, il arrive que la commande ping échoue pour de nombreuses raisons possibles.

Voici quelques erreurs courantes et comment les résoudre.

  • Hôte de destination inaccessible – Cette erreur signifie qu'il n'y a pas de route vers l'hôte de destination. Cette erreur peut se produire si l'hôte ou le domaine est en panne.
  • La demande a expiré - Cette erreur signifie que la demande à l'hôte de destination a pris trop de temps (plus de 4 secondes ou 4000 millisecondes) et que la connexion a expiré. Cette erreur peut se produire si l'hôte de destination est trop occupé pour répondre, si un pare-feu bloque la connexion ou si le matériel réseau est défectueux (câble, routeur, etc.).
  • Hôte inconnu – Cette erreur signifie que le DNS ne peut pas résoudre le nom d'hôte en une adresse IP. Vérifiez que vous avez entré le nom d'hôte correct. Si vous pensez que votre routeur ne fonctionne pas correctement, essayez de le redémarrer.
  • TTL expiré en transit – Cette erreur signifie que la requête ICMP a expiré avant d'avoir atteint sa destination. Votre paquet ping est réduit à zéro (0) avant d'atteindre l'hôte de destination. Dans la plupart des cas, une mauvaise configuration dans votre table de routage peut provoquer cette erreur. Envisagez de vérifier votre table de routage pour voir s'il y a un problème.

Au cas où vous ne le sauriez pas :les joueurs se réfèrent au ping comme étant leur connexion au serveur de jeu dans la communauté des joueurs. Un ping faible signifie une connexion plus réactive, en particulier dans les jeux rapides. Un ping élevé indique une connexion moins réactive et peut ralentir le jeu.

Certains fournisseurs d'accès à Internet (FAI) renvoient une page de recherche au lieu d'un message d'erreur lorsque vous essayez de vous connecter à un site Web qui n'existe pas. Vous pouvez obtenir un résultat faussement positif car vous obtenez une réponse au lieu d'une erreur.

Enregistrer la sortie du ping dans un fichier

La plupart des commandes, sinon toutes, ne renvoient que les résultats à l'écran, et le ping commande sous Linux n'est pas différent. Le terminal Linux possède des opérateurs de redirection de sortie intégrés qui vous permettent de rediriger la sortie vers un fichier.

Ces opérateurs de redirection sont les suivants :

(> ), qui écrasera le contenu du fichier, et le ;

(>> ) caractère, qui ajoutera la sortie au contenu existant.

Mais pourquoi voudriez-vous enregistrer les résultats du ping dans un fichier ? Principalement pour la tenue de registres et une analyse ultérieure à l'aide d'un éditeur de texte ou d'un analyseur de journal.

Vous pouvez également utiliser un tableur pour créer un graphique qui montre comment le temps de ping change au fil du temps.

Exécutez la commande suivante pour enregistrer la sortie ping dans un fichier. Cette commande écrit toute la sortie standard du ping commande dans un fichier nommé log.txt sur disque.

ping -c 10 localhost > log.txt

Alors que le ping commande est en cours d'exécution, vous remarquerez qu'il n'y a pas de sortie à l'écran.

Maintenant, ouvrez le log.txt fichier dans un éditeur de texte, tel que nano . Ou affichez le contenu du fichier en exécutant le cat commande.

# Open in a text editor
nano log.txt
# OR
# Display the contents on the screen
cat log.txt

Conclusion

Dans ce tutoriel, vous avez appris à utiliser la commande ping Linux avec divers exemples pratiques. Vous avez également appris à enregistrer la sortie du ping dans un fichier sur le disque afin de pouvoir l'analyser ultérieurement.

À ce stade, vous devriez avoir une bonne compréhension du fonctionnement de la commande ping et de son utilité. Mais avant de partir et de commencer à envoyer un ping à tout ce qui est en vue, il y a quelques règles que vous devez activer dans vos groupes de sécurité pour autoriser le trafic ICMP.

Merci d'avoir lu et bon apprentissage !


Linux
  1. Commande cp sous Linux :7 exemples pratiques

  2. Commande d'arrêt de Linux :5 exemples pratiques

  3. 5 exemples pratiques de la commande dd sous Linux

  4. 10 exemples pratiques de commandes Linux nm

  5. 7 Exemples de commandes Linux df

15 exemples pratiques de commande Rsync sous Linux

5 exemples pratiques de la commande Tail sous Linux

commande echo sous Linux :7 exemples pratiques

Exemples de commandes Linux ping

Commande ping Linux

Exemples de commandes id sous Linux