GNU/Linux >> Tutoriels Linux >  >> Linux

17 meilleures commandes de mise en réseau et de dépannage Linux pour les débutants

Configuration réseau, diagnostics et dépannage Linux général sont parties essentielles de l'administration du système. Même pour un développeur qui travaille avec des systèmes Linux, la connaissance des commandes réseau Linux est un atout supplémentaire.

Plus précisément, si vous souhaitez devenir ingénieur DevOps ou faire partie de SRE, il est essentiel de connaître toutes les commandes de dépannage Linux car ils feront partie de vos activités quotidiennes.

Cet article couvrira les importantescommandes de mise en réseau et de dépannage de Linux qui sont nativement disponibles dans les systèmes Linux.

Quelles sont les meilleures commandes de mise en réseau et de dépannage Linux ?

Voici la liste des commandes de dépannage nativement disponibles.

Commande Description
hostname Pour vérifier et définir le nom d'hôte du serveur.
host Pour obtenir les détails du DNS de l'hôte
ping Vérifie si le serveur distant est accessible en utilisant le protocole ICMP. Il indique également le temps d'aller-retour des paquets.
curl Un utilitaire multiplateforme utilisé pour transférer des données. Il peut être utilisé pour résoudre plusieurs problèmes de réseau.
wget Utilitaire pour télécharger des fichiers. Peut être utilisé pour dépanner les connexions proxy et la connectivité.
ip Un remplacement pour ifconfig . Peut être utilisé pour configurer et récupérer des informations sur les interfaces réseau des systèmes
arp Utilitaire pour afficher et gérer le cache arp.
ss/netstat Principalement utilisé pour vérifier les connexions et le PID sur les ports et les sockets Unix.
tracerout e Cet utilitaire utilise le protocole ICMP et trouve les sauts impliqués dans la lecture du serveur de destination. Il montre également le temps qu'il faut entre les sauts.
mtr mtr est un mélange de ping et traceroute . Il fournit également des informations supplémentaires telles que les hôtes intermédiaires et la réactivité.
dig Vous aide à obtenir les enregistrements DNS associés à un nom de domaine.
nslookup Commande similaire à creuser.
nc utilitaire pour déboguer les sockets TCP/UDP.
telnet Il peut être utilisé pour tester la connectivité à distance sur les ports
route Vous aide à obtenir toutes les informations sur la table de routage
tcpdump Cet utilitaire vous aide à capturer les paquets réseau et à les analyser pour les problèmes de réseau.
lsof liste tous les fichiers ouverts et les informations de processus qui l'ont ouvert

Comprenons chaque commande et voyons comment nous pouvons l'utiliser pour dépanner Linux.

Remarque importante : Chaque commande/utilitaire mentionné dans cet article a de nombreuses options et drapeaux. Chaque commande a une page de manuel et vous pouvez l'utiliser pour identifier les indicateurs et les options requis pour votre cas d'utilisation. Par exemple, pour ip commande, vous pouvez simplement la taper man ip dans le terminal pour obtenir tous les détails sur cette commande.

1. nom d'hôte

La commande Hostname est utilisée pour afficher le nom d'hôte de la machine et pour définir le nom d'hôte.

hostname

Vous pouvez utiliser la commande hostname pour définir un nouveau nom d'hôte pour la machine. Par exemple,

sudo hostname temp.com

Si vous définissez le nom d'hôte à l'aide de "hostname ”, lorsque vous redémarrez la machine, le nom d'hôte changera pour le nom spécifié dans le fichier de nom d'hôte (par exemple :/etc/hostname).

Donc, si vous voulez changer le nom d'hôte de façon permanente, vous pouvez utiliser le /etc/hosts fichier ou fichier de nom d'hôte pertinent présent sur le serveur.

  1. Pour les machines Ubuntu, vous pouvez le modifier dans le /etc/hostname fichier.
  2. Pour RHEL, CentOS et Fedora, vous pouvez le modifier dans le /etc/sysconfig/network fichier.

2. hébergeur

La commande Host est pour la recherche inversée d'IP ou d'un nom DNS.

Par exemple, si vous voulez trouver un DNS attaché avec une adresse IP, vous pouvez utiliser les commandes de l'hôte comme suit.

host 8.8.8.8

Vous pouvez également faire l'inverse pour trouver l'adresse IP associée au nom de domaine. Par exemple,

host devopscube.com

3. ping

L'utilitaire de mise en réseau ping est utilisé pour vérifier si le serveur distant est accessible ou non. Il est principalement utilisé pour vérifier la connectivité et dépanner le réseau.

Il fournit les détails suivants.

  1. Octets envoyés et reçus
  2. Paquets envoyés, reçus et perdus
  3. Durée approximative de l'aller-retour (en millisecondes)

La commande Ping a la syntaxe suivante.

ping <IP or DNS>

Par exemple,

ping devopscube.com

Pour cingler l'adresse IP

ping 8.8.8.8

Si vous souhaitez limiter la sortie du ping sans utiliser ctrl+c, vous pouvez utiliser le drapeau "-c" avec un nombre comme indiqué ci-dessous.

ping -c 1 devopscube.com

4. boucler

L'utilitaire Curl est principalement utilisé pour transférer des données depuis ou vers un serveur. Cependant, vous pouvez l'utiliser pour le dépannage du réseau.

Pour le dépannage du réseau, curl prend en charge des protocoles tels que DICT , FILE , FTP , FTPS , GOPHER , HTTP , HTTPS , IMAP , IMAPS , LDAP , LDAPS , MQTT , POP3 , POP3S , RTMP , RTMPS , RTSP , SCP , SFTP , SMB , SMBS , SMTP , SMTPS , TELNET et TFTP

Par exemple, curl peut vérifier la connectivité sur le port 22 en utilisant telnet.

curl -v telnet://192.168.33.10:22

Vous pouvez vérifier la connectivité FTP à l'aide de curl.

curl ftp://ftptest.net 

Vous pouvez également dépanner la connectivité du serveur Web.

curl http://devopscube.com -I

5. wget

Le wget La commande est principalement utilisée pour récupérer des pages Web.

Vous pouvez utiliser wget pour résoudre également les problèmes de réseau.

Par exemple, vous pouvez dépanner les connexions au serveur proxy à l'aide de wget.

wget -e use_proxy=yes http_proxy=<proxy_host:port> http://externalsite.com

Vous pouvez vérifier si un site Web est en ligne en récupérant les fichiers.

wget www.google.com

6. ip (ifconfig)

ip La commande est utilisée pour afficher et manipuler les routes et les interfaces réseau. ip la commande est la version la plus récente de ifconfig . ifconfig fonctionne sur tous les systèmes, mais il est préférable d'utiliser la commande ip au lieu de ifconfig.

Voyons quelques exemples de ip commande.

Afficher les périphériques réseau et la configuration

ip addr

Vous pouvez utiliser cette commande avec pipes et grep pour obtenir une sortie plus granulaire comme l'adresse IP de l'interface eth0. C'est très utile lorsque vous travaillez sur des outils d'automatisation qui nécessitent une récupération dynamique de l'IP.

La commande suivante obtient l'adresse IP de eth0 interface réseau.

ip a | grep eth0  | grep "inet" | awk -F" " '{print $2}'

Obtenir les détails d'une interface spécifique

ip a show eth0

Vous pouvez lister les tables de routage.

ip route
ip route list

7. arp

ARP (Protocole de résolution d'adresse ) affiche la table de cache des adresses IP et des adresses MAC des réseaux locaux avec lesquelles le système a interagi.

arp

Exemple de sortie,

[email protected]:~$ arp
Address                  HWtype  HWaddress           Flags Mask            Iface
10.0.2.3                 ether   52:54:00:12:35:03   C                     eth0
192.168.33.1             ether   0a:00:27:00:00:00   C                     eth1
10.0.2.2                 ether   52:54:00:12:35:02   C                     eth0

8. ss (netstat)

Le ss la commande remplace netstat . Vous pouvez toujours utiliser le netstat commande sur tous les systèmes.

Utiliser ss commande, vous pouvez obtenir plus d'informations que netstat commande. La commande ss est rapide car elle obtient toutes les informations de l'espace utilisateur du noyau.

Voyons maintenant quelques utilisations de ss commande.

Liste de toutes les connexions

Le "ss " la commande répertoriera toutes les connexions de socket TCP, UDP et Unix sur votre machine.

[email protected]:~$ ss
Netid  State      Recv-Q Send-Q   Local Address:Port       Peer Address:Port
u_str  ESTAB      0      0                    * 7594                  * 0
u_str  ESTAB      0      0      @/com/ubuntu/upstart 7605                  * 0  
u_str  ESTAB      0      0                    * 29701                 * 0
u_str  ESTAB      0      0      /var/run/dbus/system_bus_socket 29702                 * 0
tcp    ESTAB      0      400      172.31.18.184:ssh         1.22.167.31:61808

La sortie du ss La commande sera grande pour que vous puissiez utiliser ” ss | less ” commande pour rendre la sortie défilable.

Filtrage des sockets TCP, UDP et Unix

Si vous souhaitez filtrer les détails des sockets TCP, UDP ou UNIX, utilisez les indicateurs "-t" "-u" et "-x" avec la commande "ss". Il affichera toutes les connexions établies aux ports spécifiques. Si vous souhaitez répertorier à la fois les ports connectés et les ports d'écoute, utilisez "a" avec l'indicateur spécifique, comme indiqué ci-dessous.

ss -ta
ss -ua
ss -xa

Répertorier tous les ports d'écoute

Pour répertorier tous les ports d'écoute, utilisez l'indicateur "-l" avec la commande ss. Pour répertorier des sockets TCP, UDP ou UNIX spécifiques, utilisez les indicateurs "-t", "-u" et "-x" avec "-l" comme indiqué ci-dessous.

[email protected]:~$ ss -lt
State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port
LISTEN     0      128                     *:ssh                      *:*
LISTEN     0      50                     :::http-alt                 :::*
LISTEN     0      50                     :::55857                   :::*
LISTEN     0      128                    :::ssh                     :::*
LISTEN     0      50                     :::53285                   :::*
[email protected]:~$

Liste de tous les établis

Pour lister tous les ports établis, utilisez le state established drapeau comme indiqué ci-dessous.

ss -t -r state established

Pour lister toutes les sockets en état d'écoute,

ss -t -r state listening

9. traceroute

Si vous n'avez pas de traceroute utilitaire dans votre système ou serveur, vous pouvez l'installer à partir du référentiel natif.

traceroute est un utilitaire de dépannage réseau. En utilisant traceroute, vous pouvez trouver le nombre de sauts requis pour qu'un paquet particulier atteigne la destination.

Par exemple,

traceroute google.com

Voici le résultat.

traceroute to google.com (173.194.33.163), 30 hops max, 60 byte packets
 1  ec2-50-112-0-84.us-west-2.compute.amazonaws.com (50.112.0.84)  1.974 ms  1.895 ms  1.899 ms
 2  100.64.1.247 (100.64.1.247)  1.414 ms 100.64.1.137 (100.64.1.137)  1.127 ms 100.64.1.97 (100.64.1.97)  1.313 ms
 3  100.64.0.198 (100.64.0.198)  1.443 ms 100.64.0.62 (100.64.0.62)  2.160 ms 100.64.0.60 (100.64.0.60)  2.116 ms
10  66.249.94.214 (66.249.94.214)  6.313 ms  7.104 ms 209.85.249.34 (209.85.249.34)  5.986 ms
11  209.85.244.65 (209.85.244.65)  6.157 ms  6.341 ms  6.574 m.
.
12  sea09s18-in-f3.1e100.net (173.194.33.163)  6.302 ms  6.517 ms  6.071 ms
[email protected]:~$

La sortie ci-dessus montre le nombre de sauts (12) pour atteindre google.com à partir du serveur devopscube AWS ec2.

10. mètres

Le mtr L'utilitaire est un outil de diagnostic réseau pour dépanner les goulots d'étranglement du réseau. Il combine les fonctionnalités de ping et traceroute

Par exemple, la commande suivante affiche le traceroute sortie en temps réel.

mtr google.com

Voici le résultat.

rapport mtr

Vous pouvez générer un rapport à l'aide de l'indicateur –report. Lorsque vous exécutez le rapport mtr, il envoie 10 paquets à la destination et crée le rapport.

mtr -n --report google.com

11. creuser

Si vous avez une tâche liée à la recherche DNS, vous pouvez utiliser "dig ” pour interroger les serveurs de noms DNS.

Obtenir tous les enregistrements DNS avec dig

La commande suivante renvoie tous les enregistrements DNS et les informations TTL d'un twitter.com

dig twiter.com ANY

Utilisez +short pour obtenir la sortie sans verbeux.

dig google.com ANY +short

Obtenir un enregistrement DNS spécifique avec dig

Par exemple, si vous souhaitez obtenir l'enregistrement A record pour le nom de domaine particulier, vous pouvez utiliser la commande dig. +short fournira les informations sans verbeux

dig www.google.com A +short

De même, vous pouvez obtenir les autres informations d'enregistrement séparément à l'aide des commandes suivantes.

dig google.com CNAME +short
dig google.com MX +short
dig google.com TXT +short
dig google.com NS +short

Recherche DNS inversée avec dig

Vous pouvez effectuer une recherche DNS inversée avec dig en utilisant la commande suivante. Remplacer 8.8.8.8 avec l'IP requise

dig -x 8.8.8.8

12. nslookup

Nslookup (Name Server Lookup) est utilisé pour vérifier les entrées DNS. C'est similaire à la commande dig.

Pour vérifier les enregistrements DNS d'un domaine, vous pouvez utiliser la commande suivante.

nslookup google.com

Vous pouvez également faire une recherche inversée avec l'adresse IP.

nslookup 8.8.8.8

Pour obtenir tous les enregistrements DNS d'un nom de domaine, vous pouvez utiliser ce qui suit.

nslookup -type=any google.com

De même, vous pouvez interroger des enregistrements tels que mx , soa etc

13. nc (netcat)

Le nc (netcat) est connue comme l'armée suisse des commandes réseau.

Utilisation de nc , vous pouvez vérifier la connectivité d'un service exécuté sur un port spécifique.

Par exemple, pour vérifier si ssh port est ouvert, vous pouvez utiliser la commande suivante.

nc -v -n 192.168.33.10 22

netcat peut également être utilisé pour le transfert de données via TCP/UDP et l'analyse des ports.

L'analyse des ports n'est pas recommandée dans les environnements cloud. Vous devez demander au fournisseur de cloud d'effectuer des opérations d'analyse de ports dans votre environnement.

14. telnet

La commande telnet est utilisée pour dépanner les connexions TCP sur un port.

Pour vérifier la connectivité des ports à l'aide de telnet, utilisez la commande suivante.

telnet 10.4.5.5 22

15. itinéraire

Le "route ” est utilisée pour obtenir les détails de la table de routage de votre système et pour la manipuler. Examinons quelques exemples pour la commande route.

Liste de toutes les routes

Exécutez la "route ” sans aucun argument pour répertorier toutes les routes existantes dans votre système ou serveur.

[email protected]:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         ip-172-31-16-1. 0.0.0.0         UG    0      0        0 eth0
172.17.0.0      *               255.255.0.0     U     0      0        0 docker0
172.31.16.0     *               255.255.240.0   U     0      0        0 eth0
[email protected]:~$

Si vous souhaitez obtenir la sortie complète sous forme numérique sans aucun nom d'hôte, vous pouvez utiliser le drapeau "-n" avec la commande route.

[email protected]:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.31.16.1     0.0.0.0         UG    0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.31.16.0     0.0.0.0         255.255.240.0   U     0      0        0 eth0
[email protected]:~$

16. tcpdump

Le tcpdump La commande est principalement utilisée pour dépanner le trafic réseau.

Remarque : Pour analyser la sortie de tcpdump La commande nécessite un certain apprentissage, donc l'expliquer n'entre pas dans le cadre de cet article.

tcpdump La commande fonctionne avec les interfaces réseau du système. Vous devez donc utiliser les privilèges administratifs pour exécuter la commande.

Répertorier toutes les interfaces réseau

Utilisez la commande suivante pour lister toutes les interfaces.

sudo  tcpdump --list-interfaces

Capturer des paquets sur une interface spécifique

Pour obtenir le vidage des paquets sur une interface spécifique, vous pouvez utiliser la commande suivante.

Remarque : appuyez sur ctrl + c pour arrêter de capturer les paquets.

sudo tcpdump -i eth0

Pour limiter la capture de paquets, vous pouvez utiliser le -c drapeau avec le numéro.

Par exemple,

sudo tcpdump -i eth0 -c 10

Capturer des paquets sur toutes les interfaces

Pour capturer des paquets sur toutes les interfaces, utilisez le any drapeau comme indiqué ci-dessous.

sudo tcpdump -i any

17. lsof

lsof est une commande qui serait utilisée dans le dépannage quotidien de Linux. Cette commande est tout aussi importante pour quiconque travaille avec des systèmes Linux.

Pour lister tous les fichiers ouverts, exécutez le lsof commande.

lsof

L'une des erreurs courantes rencontrées par les développeurs et les ingénieurs DevOps est "Erreur d'échec de la liaison :adresse déjà utilisée “. Vous pouvez trouver l'ID de processus associé à un port à l'aide de la commande suivante. Ensuite, vous pouvez tuer le processus pour libérer le port.

lsof -i :8080

Utilitaires de dépannage réseau tiers

Il existe d'autres utilitaires de ligne de commande de dépannage réseau disponibles à partir de solutions tierces.

Vous devez les installer séparément et les utiliser à des fins de dépannage. Pour des raisons de conformité de sécurité, toutes les organisations ne vous permettront pas de le faire. Cependant, si vous avez la possibilité d'utiliser des outils tiers, vous pouvez les explorer.

Conclusion

Dans cet article, nous avons couvert les utilitaires de ligne de commande Linux importants pour le dépannage et la configuration du réseau.

Si vous débutez avec des rôles d'administration système, DevOps ou SRE, il est essentiel de se familiariser avec ces utilitaires pour prendre en charge les projets sur lesquels vous travaillez.

Chaque utilitaire possède de nombreuses fonctionnalités, et vous pouvez explorer davantage pour répondre à vos besoins.

Si vous pensez que nous avons manqué des commandes importantes, faites-le nous savoir dans la section des commentaires.

De plus, si vous souhaitez apprendre les scripts shell, consultez notre guide sur la façon d'apprendre les scripts shell. Si vous êtes développeurs, consultez mon guide sur les commandes Linux que tout développeur devrait connaître.


Linux
  1. 10 tutoriels de commande Linux pour débutants et experts

  2. Tutoriel de commande de nom d'hôte Linux pour les débutants (5 exemples)

  3. Commandes Linux - Présentation et exemples

  4. Commandes Linux :jobs, bg et fg

  5. Principales commandes Linux de base pour les débutants

Tutoriel sur les commandes Linux pushd et popd pour les débutants (3 exemples)

Tutoriel de commande Linux ss pour les débutants (8 exemples)

Commande de localisation Linux pour les débutants (8 exemples)

16 exemples pratiques de commande Linux LS pour les débutants

Les 40 commandes de serveur Linux utiles pour les débutants et les professionnels

Tutoriels et exemples de commande Linux Head pour les débutants