GNU/Linux >> Tutoriels Linux >  >> Linux

7 commandes réseau Linux que chaque administrateur système devrait connaître

Cet article est le premier d'une série centrée sur les recommandations de commande « crowd-sourced ». J'ai demandé à un groupe de nos principaux contributeurs quelles étaient leurs commandes Linux préférées, et les commentaires ont été écrasants. Nous avons reçu 46 commandes individuelles, et beaucoup d'entre elles ont été soulignées par plusieurs soumissions.

Cette série représente la liste complète, ventilée par catégorie. J'ai surnommé ces sept premières commandes "Commandes réseau que tout le monde devrait connaître".

Note de l'éditeur :Evans Amoany a fourni les informations de commande et des exemples. Un de nos Sudoers et un talentueux administrateur *nix. Bravo à Evans pour avoir fait le gros du travail ici.

[ Vous pourriez également apprécier : Mise en réseau Linux :13 utilisations de netstat ]

ip

L'ip La commande est l'une des commandes de base dont chaque administrateur aura besoin dans son travail quotidien, de la configuration de nouveaux systèmes et de l'attribution d'adresses IP au dépannage des systèmes existants. L'ip La commande peut afficher les informations d'adresse, manipuler le routage et afficher divers périphériques, interfaces et tunnels du réseau.

La syntaxe est la suivante :

ip

L'OBJET est la partie la plus importante du synopsis, et les éléments suivants sont pris en charge (certains omis par souci de brièveté) :

adresse - adresse de protocole (IPv4 ou IPv6) sur un appareil.

  • tunnel - tunnel sur IP
  • route - entrée de la table de routage
  • rule - règle dans la base de données des règles de routage
  • vrf – gérer les périphériques de routage et de transfert virtuels
  • xfrm - gérer les politiques IPSec

Voici quelques cas d'utilisation courants pour l'ip commande.

Pour afficher les adresses IP attribuées à une interface sur votre serveur :

[root@server ~]# ip address show 

Pour attribuer une adresse IP à une interface, par exemple, enps03 :

[root@server ~]# ip address add 192.168.1.254/24 dev enps03

Pour supprimer une IP sur une interface :

[root@server ~]# ip address del 192.168.1.254/24 dev enps03

Modifier le statut de l'interface en amenant l'interface eth0 en ligne :

[root@server ~]# ip link set eth0 up

Modifier le statut de l'interface en amenant l'interface eth0 hors ligne :

[root@server ~]# ip link set eth0 down

Modifier le statut de l'interface en changeant le MTU de eth0 :

[root@server ~]# ip link set eth0 mtu 9000

Modifier le statut de l'interface en activant le mode promiscuité pour eth0 :

[root@server ~]# ip link set eth0 promisc on

Ajoutez une route par défaut (pour toutes les adresses) via la passerelle locale 192.168.1.254 accessible sur l'appareil eth0 :

[root@server ~]# ip route add default via 192.168.1.254 dev eth0

Ajoutez une route à 192.168.1.0/24 via la passerelle à 192.168.1.254 :

[root@server ~]# ip route add 192.168.1.0/24 via 192.168.1.254

Ajoutez une route à 192.168.1.0/24 accessible sur l'appareil eth0 :

[root@server ~]# ip route add 192.168.1.0/24 dev eth0

Supprimez la route pour 192.168.1.0/24 via la passerelle à 192.168.1.254 :

[root@server ~]# ip route delete 192.168.1.0/24 via 192.168.1.254

Afficher la route prise pour IP 10.10.1.4 :

[root@server ~]# ip route get 10.10.1.4

ifconfig

Le ifconfig La commande était/est un élément de base dans la ceinture à outils de nombreux administrateurs système pour la configuration et le dépannage des réseaux. Il a depuis été remplacé par le ip commande décrite ci-dessus. Cependant, si vous souhaitez plus d'informations à ce sujet, consultez notre article précédemment publié ici.

mètre

MTR (Matt's traceroute) est un programme avec une interface de ligne de commande qui sert d'outil de diagnostic et de dépannage du réseau. Cette commande combine les fonctionnalités du ping et traceroute commandes. Tout comme un traceroute , le mtr La commande affichera la route d'un ordinateur à un hôte spécifié. mtr fournit de nombreuses statistiques sur chaque saut, telles que le temps de réponse et le pourcentage. Avec le mtr commande, vous obtiendrez plus d'informations sur l'itinéraire et pourrez voir les appareils problématiques en cours de route. Si vous constatez une augmentation soudaine du temps de réponse ou une perte de paquets, il est évident qu'il y a un mauvais lien quelque part.

La syntaxe de la commande est la suivante :

mtr nom d'hôte/IP

Examinons quelques cas d'utilisation courants.

Le mtr de base La commande vous montre les statistiques, y compris chaque saut (noms d'hôte) avec le temps et le pourcentage de perte :

[root@server ~]# mtr google.com

Afficher les adresses IP numériques (si vous utilisez -g , vous obtiendrez des adresses IP (numéros) au lieu de noms d'hôtes) :

[root@server ~]# mtr -g google.com

Afficher également les adresses IP numériques et les noms d'hôte :

[root@server ~]# mtr -b google.com

Définissez le nombre de pings que vous souhaitez envoyer :

[root@server ~]# mtr -c 10 google.com

Obtenir un rapport du mtr résultat de la commande :

[root@server ~]# mtr -r -c 10 google.com > mtr-command-google-output

ou :

[root@server ~]# mtr -rw -c 10 google.com > mtr-command-google-output

Forcer l'utilisation du TCP au lieu de l'ICMP :

[root@server ~]# mtr –tcp google.com

Forcer l'utilisation de l'UDP au lieu de l'ICMP :

[root@server ~]# mtr –udp google.com

Définissez le nombre maximal de sauts :

[root@server ~]# mtr -m 35 216.58.223.78

Définissez la taille du paquet :

[root@server ~]# mtr -r -s 50 google.com

Imprimer vers la sortie CSV :

[root@server ~]# mtr –csv google.com

Imprimer vers la sortie XML :

[root@server ~]# mtr –xml google.com

tcpdump

Le tcpdump est conçue pour capturer et afficher des paquets.

Vous pouvez installer tcpdump avec la commande ci-dessous :

[root@server ~]# dnf install -y tcpdump

Avant de commencer toute capture, vous devez savoir quelles interfaces tcpdump peut utiliser. Dans ce cas, vous devrez utiliser sudo ou disposer d'un accès root.

[root@server ~]# tcpdump -D

  1 eth0
  2 nflog
  3 nfqueue
  4 usbmon1
  5 any
  6 lo (Loopback)

Si vous souhaitez capturer le trafic sur eth0 , vous pouvez l'initier avec tcpdump -i eth0 exemple de sortie :

[root@server ~]# tcpdump -i eth0
[root@server ~]# tcpdump -i eth0 -c 10

Capturer le trafic vers et depuis un hôte

Vous pouvez filtrer le trafic provenant d'un hôte spécifique. Par exemple, pour trouver le trafic en provenance et à destination de 8.8.8.8, utilisez la commande :

[root@server ~]# tcpdump -i eth0 -c 10 host 8.8.8.8

Pour le trafic provenant de 8.8.8.8, utilisez :

[root@server ~]# tcpdump -i eth0 src host 8.8.8.8

Pour le trafic sortant vers 8.8.8.8, utilisez :

[root@server ~]# tcpdump -i eth0 dst host 8.8.8.8

Capturer le trafic vers et depuis un réseau

Vous pouvez également capturer le trafic vers et depuis un réseau spécifique à l'aide de la commande ci-dessous :

[root@server ~]# tcpdump -i eth0 net 10.1.0.0 mask 255.255.255.0

ou :

[root@server ~]# tcpdump -i eth0 net 10.1.0.0/24

Vous pouvez également filtrer en fonction de la source ou de la destination.

Basé sur la source (trafic provenant de) :

[root@server ~]# tcpdump -i eth0 src net 10.1.0.0/24

En fonction de la destination (trafic vers) :

[root@server ~]# tcpdump -i eth0 dst net 10.1.0.0/24

Capturer le trafic vers et depuis les numéros de port

Capturez uniquement le trafic DNS du port 53 :

[root@server ~]# tcpdump -i eth0 port 53

Pour un hébergeur spécifique,

[root@server ~]# tcpdump -i eth0 host 8.8.8.8 and port 53

Pour capturer uniquement le trafic HTTPS,

[root@server ~]# tcpdump -i eth0 -c 10 host www.google.com and port 443

Pour capturer tous les ports sauf les ports 80 et 25,

[root@server ~]# tcpdump -i eth0 port not 53 and not 25

netstat

Le netstat outil pour imprimer les connexions réseau, les tables de routage, les statistiques d'interface, les connexions masquées et les adhésions multidiffusion. Cet utilitaire fait partie du package net-tool, tout comme ifconfig . Dans le nouveau package iproute2, le ss outil est utilisé pour atteindre les mêmes objectifs.

Si netstat n'est pas trouvé sur votre système, installez-le avec cette commande :

[root@server ~]# dnf install net-tools

L'utilisation principale de netstat est sans aucun paramètre :

[root@server ~]# netstat

Pour une utilisation avancée, développez le netstat commande avec options :

netstat <options>

Ou listez les options une par une :

netstat <option 1> <option 2> <option 3>

Pour répertorier tous les ports et toutes les connexions, quel que soit leur état ou leur protocole, utilisez :

[root@server ~]# netstat -a

Répertoriez tous les ports TCP en exécutant :

[root@server ~]# netstat -at

Lister tous les ports UDP avec :

[root@server ~]# netstat -au

Pour renvoyer une liste des seuls ports d'écoute pour tous les protocoles, utilisez :

[root@server ~]# netstat -l

Lister tous les ports TCP en écoute avec :

[root@server ~]# netstat -lt

Renvoyez uniquement les ports UDP en écoute en exécutant :

[root@server ~]# netstat -lu

Pour répertorier les ports d'écoute UNIX, utilisez :

[root@server ~]# netstat -lx

Affichez les statistiques de tous les ports quel que soit le protocole avec :

[root@server ~]# netstat -s

Lister les statistiques pour les ports TCP uniquement avec :

[root@server ~]# netstat -st

Pour afficher les connexions TCP avec le PID/nom du programme répertorié, utilisez :

[root@server ~]# netstat -tp

Pour trouver un processus qui utilise un numéro de port particulier, exécutez :

[root@server ~]# netstat -an | grep ‘:<port number>’

nslookup

Utilisez le nslookup utilitaire pour interroger les serveurs de noms Internet de manière interactive. Utilisez-le pour effectuer des requêtes DNS et recevoir des noms de domaine ou des adresses IP, ou tout autre enregistrement DNS spécifique.

Considérez les exemples courants suivants.

Pour trouver l'enregistrement A d'un domaine :

[root@server ~]# nslookup example.com

Pour vérifier les enregistrements NS d'un domaine :

[root@server ~]# nslookup -type=ns example.com

Pour trouver les enregistrements MX responsables de l'échange d'e-mail :

[root@server ~]# nslookup -query=mx example.com

Pour trouver tous les enregistrements DNS disponibles d'un domaine :

[root@server ~]# nslookup -type=any example.com

Pour vérifier l'utilisation d'un serveur DNS spécifique (dans ce cas, interrogez en utilisant le serveur de noms spécifique ns1.nsexample.com) :

[root@server ~]# nslookup example.com ns1.nsexample.com

La vérification des enregistrements DNS A pour voir les adresses IP d'un domaine est une pratique courante, mais vous devez parfois vérifier si une adresse IP est associée à un domaine spécifique. Pour cela, vous avez besoin d'une recherche DNS inversée.

[root@server ~]# nslookup 10.20.30.40

ping

Ping est un outil qui vérifie la connectivité de niveau IP à un autre ordinateur TCP/IP en envoyant des messages de demande d'écho ICMP (Internet Control Message Protocol). La réception des messages de réponse d'écho correspondants s'affiche, ainsi que les temps d'aller-retour. Ping est la principale commande TCP/IP utilisée pour dépanner la connectivité, l'accessibilité et la résolution de noms.

ping simple Les commandes ne prennent qu'un seul paramètre :le nom d'hôte ou l'adresse IP de l'hôte que vous souhaitez vérifier. Un simple ping exemple est comme ci-dessous :

[root@server ~]# ping google.com
PING google.com (216.58.206.174) 56(84) bytes of data.
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=1 ttl=56 time=10.7 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=2 ttl=56 time=10.2 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=3 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=4 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=5 ttl=56 time=17.3 ms
^C
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 10.219/11.844/17.381/2.773 ms

Vous devez arrêter le ping commande en appuyant sur CTRL+C . Sinon, il va ping jusqu'à ce que vous l'arrêtiez. Après chaque ping commande, il affichera un rapport récapitulatif avec les informations suivantes :

  • Min :temps minimum nécessaire pour obtenir une réponse de l'hôte qui a reçu un ping de votre côté.
  • Avg :temps moyen nécessaire pour obtenir une réponse de l'hôte qui a reçu un ping de votre côté.
  • Max :temps maximal nécessaire pour obtenir une réponse de l'hôte qui a reçu un ping de votre côté.

En outre, vous verrez TTL, qui signifie Time To Live. Ping utilise une valeur TTL numérique pour tenter d'atteindre un ordinateur hôte donné via le chemin d'accès. Ceci est également connu sous le nom de limite de saut.

Normalement, lorsque vous exécutez un simple ping commande sans passer de paramètres supplémentaires, Linux va ping cet hôte pendant une durée infinie. Si vous voulez ping un hôte dix fois, utilisez la commande suivante :

[root@server ~]# ping -c 10 google.com

Utilisez l'option -q pour afficher uniquement le ping résumé des statistiques :

[root@server ~]# ping -c 10 google.com

Sur les systèmes avec plusieurs interfaces, vous pouvez spécifier l'interface pour le ping commande à utiliser. Si le système a à la fois eth0 et eth1 et je veux ping en utilisant eth0 :

[root@server ~]# ping -I eth0 google.com

Ou utilisez l'adresse sur l'interface, en supposant que l'interface est 10.233.201.45 comme adresse IP :

[root@server ~]# ping -I 10.233.201.45 google.com

Vous pouvez également ping et spécifiez la version IP comme v4 ou v6 :

[root@server ~]# ping -4 google.com
[root@server ~]# ping -6 google.com

Lors du ping d'un hôte, vous trouverez une sortie différente du ping résultats, y compris les trois exemples suivants.

Hôte de destination inaccessible

La meilleure raison possible est qu'il n'y a pas de route entre le système hôte local et l'hôte de destination souhaité, ou qu'un routeur distant signale qu'il n'a pas de route vers l'hôte de destination.

La demande a expiré

Ce résultat signifie qu'aucun message de réponse d'écho n'a été reçu dans le délai par défaut d'une seconde ou le délai que vous avez défini pendant que vous envoyez un ping à cet hôte. Cela peut être dû à de nombreuses causes différentes; les plus courants incluent la congestion du réseau, l'échec de la requête ARP, le filtrage de paquets/pare-feu, etc.

L'hôte inconnu/la requête Ping n'a pas pu trouver l'hôte

Vous avez peut-être mal orthographié le nom d'hôte ou l'hôte n'existe pas du tout sur le réseau.

Vous devez avoir 0 % de perte de paquets pour chaque ping résultat avec une bonne latence ou un temps de réponse plus faible. Selon le support de transmission (UTP, câble à fibre optique, Wi-Fi) que vous utilisez, votre latence sera différente.

[ Aide-mémoire gratuit :obtenez une liste d'utilitaires et de commandes Linux pour gérer les serveurs et les réseaux. ] 

J'ai hâte

Vous devez ajouter ces commandes et ces exemples dans vos routines lorsque vous configurez et dépannez vos propres réseaux. Si vous avez trouvé ce type d'article utile, assurez-vous de nous contacter et de nous le faire savoir. Gardez également un œil sur la deuxième partie de notre liste de commandes communautaires. Le suivant est 16 commandes Linux générales dont vous ne pouvez pas vous passer.


Linux
  1. 10 commandes que tout utilisateur de Linux devrait connaître

  2. 3 compétences que chaque administrateur système Linux devrait apporter à la table

  3. 6 options de commande OpenSSL que chaque administrateur système devrait connaître

  4. 17 commandes Linux que tout administrateur système devrait connaître

  5. 10 commandes mortelles que vous ne devriez jamais exécuter sous Linux

5 commandes Linux que chaque utilisateur Linux devrait connaître

21 commandes essentielles que tout utilisateur de Docker devrait connaître

5 astuces simples pour l'historique de Bash que tout utilisateur de Linux devrait connaître

Commandes Linux que tous les utilisateurs doivent connaître {Liste ultime}

Faits intéressants sur Linux que vous devez savoir

Les 20 meilleurs sites Web de jeux Linux que tout joueur doit connaître