Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Netstat sur Linux : utilisations et exemples

La commande netstat est une commande Linux de base pour analyser et vérifier les connexions réseaux.
Elle affiche diverses informations relatives au réseau, telles que les connexions réseau, les ports ouverts et en écoute, les tables de routage, les statistiques d'interface, les connexions masquerade, etc.

Dans ce tutoriel, je vous guide pour utiliser la commande netstat avec de nombreux exemples.

Netstat sur Linux : utilisations et exemples

Comment utiliser la commande netstat sur Linux

Elle s'utilise dans un terminal et peut fonctionner sans aucune option.
De manière générale, il est conseillé de l'utiliser avec la commande sudo afin de pouvoir accéder aux informations complètes du système.

La sortie de la commande netstat se divise deux en deux catégories :

  • Active Internet Connections
  • Active UNIX Domain sockets

Connexions réseau actives

La section "Active Internet Connections" répertorie les connexions externes connectées et les sockets locaux à l'écoute des demandes de connexion à distance. C'est-à-dire qu'il répertorie les connexions réseau qui sont (ou seront) établies vers des équipements réseaux externes

Les ns réseau actives dans netstat
  • Proto : Le protocole utilisé par cette prise (par exemple, TCP ou UDP).
  • RECV-Q : La file d'attente de réception. Ce sont des octets entrants qui ont été reçus et sont tamponnés, en attente du processus local qui utilise cette connexion pour la lire et la consommer.
  • Send-Q : La file d'attente d'envoi. Cela montre les octets prêts à être envoyés de la file d'attente d'envoi.
  • Adresse locale : Les détails de l'adresse de la fin locale de la connexion. La valeur par défaut est pour NetStat pour afficher le nom d'hôte local pour l'adresse et le nom du service du port.
  • Adresse distante : L'adresse et le numéro de port de la fin à distance de la connexion.
  • Etat de la connexion : L'état de la prise locale Established, Listen, Closed, .... Pour les sockets UDP, ceci est généralement vide

Voici les état de la connexion TCP - Consultez ce tutoriel pour plus de détails : L'établissement d'une connexion TCP/IP

  • SYN_SENT : Le client tente d'établir une connexion. Pour cela, il envoie une demande de synchronisation à la cible
  • SYN_RECV : Une demande de connexion a été reçue du réseau
  • ESTABLISHED : La connexion est établie et les données transitent
  • TIME_WAIT : Le socket attend après la fermeture pour gérer les paquets toujours dans le réseau.
  • LAST_ACK : L'extrémité distante s'est arrêtée et le socket est fermé
  • LISTEN : La prise écoute les connexions entrantes. Le port est ouvert en attente de connexion
  • CLOSING : Les deux sockets sont fermés mais nous n'avons toujours pas toutes nos données expédié
  • CLOSE_WAIT : L'extrémité distante s'est arrêtée, attendant la fermeture du socket

Les sockets unix actifs

La section "Unix Domain sockets" répertorie les connexions internes connectées et écoutées.
En d'autres termes, il répertorie les connexions établies dans votre ordinateur entre différentes applications, processus et éléments du système d'exploitation.

Les sockets unix actifs dans netstat

Les colonnes "Domaine Unix" sont:

  • Proto : Le protocole utilisé par cette prise. Ce sera "Unix".
  • Refcnt : Compte de référence. Le nombre de processus attachés connectés à cette prise.
  • Flags : Ceci est généralement défini sur ACC, qui représente SO_ACCEPTON, ce qui signifie que la prise attend une demande de connexion. SO_WAITTDATA, montré comme w, signifie qu'il y a des données en attente d'être lues. SO_NOSPACE, indiquée comme n, signifie qu'il n'y a pas d'espace pour écrire des données sur la prise (c'est-à-dire que le tampon d'envoi est plein)
  • Type : Le type de socket. Voir la table de type ci-dessous
  • État : L'état de la prise. Voir le tableau d'état ci-dessous
  • I-Node : L'inode système de fichiers associé au socket
  • Path : Le chemin du système de fichiers du socket

Le type de socket de domaine UNIX peut être l'une des suivantes:

  • DGRAM : La prise est utilisée en mode Datagramme, à l'aide de messages de longueur fixe. Les datagrammes ne sont ni garantis pour être fiables, séquencés, ni non remplacés
  • STREAM : Cette prise est une prise de courant. C'est le type de connexion de socket «normal». Ces sockets sont conçus pour fournir une livraison fiable séquence (commande) de paquets
  • RAW : Ce socket est utilisée comme un stocket brut. Les prises brutes fonctionnent au niveau du réseau du modèle OSI et ne font pas référence aux en-tec TCP et UDP du niveau de transport
  • RDM : Ce socket est situé à une extrémité d'une connexion de messages livrés de manière fiable.
  • SEQPACKET : Cette prise fonctionne comme une prise de paquets séquentielle, ce qui est un autre moyen de fournir une livraison de paquets fiable, séquence et non modifiée
  • PACKET : Prise d'accès d'interface brute. Les sockets de paquets sont utilisés pour recevoir ou envoyer des paquets bruts sur le pilote de périphérique (c'est-à-dire la couche de liaison de données) du modèle OSI

L'état de la prise Domaine Unix peut être l'une des suivantes:

  • FREE : Ce socket est non alloué
  • LISTENING : Ce socket est à l'écoute des demandes de connexion entrantes
  • CONNECTING : Ce socket est en train de se connecter
  • CONNECTED : Une connexion a été établie et le socket est capable de recevoir et de transmettre des données
  • DISCONNECTING : La connexion est en cours de résiliation

Netstat sur Linux : utilisations et exemples

Comment lister toutes les connexions (établies, ouvertes, en attente)

L'option -a pour all permet de lister tous les sockets.

sudo netstat -a
Comment lister toutes les connexions (établies, ouvertes, en attente) avec la commande netstat de Linux

Comment lister les adresses IP (sans nom d'hôte et résolution DNS)

Par défaut, netstat affiche les noms d'hôte ce qui nécessite une résolution DNS.
Cela peut donc nécessité un temps de latente dans l'affichage des connexion.
Pour ne pas résoudre les nom d'hôte et n'afficher que les adresse IP, utilisez l'option -n.
L'affichage sera instantanée.

sudo netstat -an
Comment lister les adresses IP (sans nom d'hôte et résolution DNS) avec netstat sur Linux

Comment énumérer uniquement les ports ouverts en écoute

Pour afficher les ports en écoute (état LISTENING), utilisez l'option -l :

sudo netstat -l
Comment énumérer uniquement les ports ouverts en écoute avec netstat sur Linux

Comment lister toutes les connexions TCP

Si vous ne voulez que ou avez besoin de voir les sockets TCP, vous pouvez utiliser l'option -t (TCP) pour limiter l'affichage pour afficher uniquement les sockets TCP.

sudo netstat -at
Comment lister toutes les connexions TCP avec la commande netstat Linux

Comment lister toutes les connexions UDP

De même on peut filtrer et n'afficher que les connexions UDP avec l'option -u (UDP) :

sudo netstat -au
Comment lister toutes les connexions UDP avec la commande netstat Linux

Comment lister uniquement les ports UNIX d'écoute

Pour lister les ports en écoute en sockets UNIX :

sudo netstat -lx
Comment lister uniquement les ports UNIX d'écoute avec netstat sur Linux

Comment énumérer uniquement les ports TCP d'écoute

A partir de là, on peut combiner l'option -l et -r pour lister que les ports ouverts en TCP :

sudo netstat -lt
Comment énumérer uniquement les ports TCP d'écoute avec netstat sur Linux

Comment énumérer uniquement les ports UDP d'écoute

Et son équivalent pour lister que les ports réseaux en écoute en UDP :

sudo netstat -lu
Comment énumérer uniquement les ports UDP d'écoute avec la commande netstat sur Linux

Comment afficher les noms de processus et PID

Pour lister les connexions réseaux avec les programmes qui en sont l'origine.
Cela ajoute une colonne PID/Program name avec le numéro d'identification du programme et le nom du programme.

sudo netstat -ap
Comment afficher les noms de processus et PID dans netstat

Utilisez ensuite la commande ps pour obtenir plus d'informations sur le programme.

Pour lister les ports en écoutes avec les programmes qui ont ouvert les ports :

sudo netstat -pat
Comment afficher les noms de processus et PID dans netstat

Comment trouver le port ou connexion d'un programme

Il est aussi possible de combiner netstat avec la commande grep afin de trouver un programme à l'origine de connexions réseaux ou ouverte d'un port réseau.
Par exemple pour trouver les connexions établies par sshd et les ports ouverts :

sudo netstat -anp | grep "sshd"

Notez que vous pouvez aussi utiliser la commande lsof.

Comment trouver le port ou connexion d'un programme avec netstat

Afficher les statistiques pour tous les ports réseau

netstat peut aussi donner des statistiques complètes sur les connexions réseaux Linux.
Elles sont divisées pour chaque protocole TCP, ICMP ou UDP.

sudo netstat -s
Comment afficher les statistiques pour tous les ports réseau avec netstat

Afficher les statistiques des ports TCP ou UDP

Pour afficher les statistiques des ports TCP :

sudo netstat -st

Pour afficher les statistiques des ports UDP :

sudo netstat -su

Imprimez les informations NetStat en permanence

Avec l'option -c, netStat imprime des informations de manière continue toutes les quelques secondes.

sudo netstat -c

Afficher les routes et itinéraires

La commande netstat est aussi capable d'afficher les routes, cela est un équivalent à la commande route -N :

sudo netstat -r
Comment afficher les routes et itinéraires avec la commande netstat

Comment lister des interfaces réseau

Pour lister les interfaces réseaux avec les informations de MTU, TX-OK, RX-OK, etc :

sudo netstat -i

On peut aussi obtenir plus de détails avec une sortie qui s'approche de celle d'ifconfig :

sudo netstat -ie
Comment lister des interfaces réseau avec netstat

L’article Netstat sur Linux : utilisations et exemples est apparu en premier sur malekal.com.

Enregistrer un commentaire

0 Commentaires