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
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.