Comment surveiller les connexions réseau sur Linux avec ss

Les utilitaires Linux sont une bouée de sauvetage pour les administrateurs de serveur lorsqu'il s'agit de dépanner et de résoudre les problèmes de réseau. Auparavant, les administrateurs utilisaient la commande netstat pour afficher les statistiques du réseau et d'autres informations relatives aux sockets sous Linux. Mais cette commande a maintenant été dépréciée pour un meilleur outil.

La commande ss a remplacé netstat car elle fournit des informations plus détaillées que son prédécesseur. Cet article montrera comment vous pouvez utiliser ss pour extraire des informations relatives aux sockets de votre système.

Qu'est-ce que la commande ss ?

La commande ss, abréviation de socket statistics, est un utilitaire Linux qui affiche des informations relatives aux connexions réseau dans un format détaillé et lisible par l'homme. Vous pouvez utiliser ss pour dépanner et trouver des problèmes avec votre réseau car il fournit des détails complets sur les connexions.

Comme mentionné précédemment, ss a remplacé netstat, qui était l'utilitaire d'origine pour lister les statistiques des sockets sous Linux. La commande ss est facile à utiliser, fournit plus d'informations et fournit des résultats rapides et précis.

Comment utiliser ss sur Linux

En utilisant ss, vous pouvez répertorier toutes les connexions socket sur votre système. De plus, il est également possible de filtrer les connexions en fonction du type, de l'adresse de destination et du numéro de port.

Syntaxe de base

La syntaxe de base de la commande ss est :

 ss options

…où options est l'indicateur que vous pouvez utiliser pour appeler les fonctions de la commande.

La commande ss la plus simple affiche une liste de toutes les connexions établies, quel que soit le type de connexion.

 ss

Production:

Remarquez que dans l'image ci-dessus, la colonne State ne contient qu'une seule valeur, c'est-à-dire ESTAB, qui dénote une connexion établie.

Vous trouverez les en-têtes de colonne suivants dans la sortie :

  • Netid : Ceci désigne le type de socket utilisé pour la connexion. Les valeurs possibles sont TCP, UDP, u_seq (séquence Unix) et u_str (chaîne Unix).
  • Etat : La colonne Etat affiche l'état de la connexion. Vous trouverez des valeurs telles que ESTAB, UNCONN et LISTEN, qui signifient respectivement établi, non connecté et écoute.
  • Recv-Q : Le nombre de paquets reçus présents dans la file d'attente.
  • Send-Q : Le nombre de paquets envoyés dans la file d'attente.
  • Adresse locale et port : L'adresse locale de la machine de l'utilisateur et le numéro de port.
  • Adresse et port du pair : L'adresse de la machine de destination et le numéro de port.

Obtenir une liste de tous les sockets

Utilisez le drapeau -a pour afficher toutes les sockets présentes dans le réseau, en écoute ou non.

 ss -a

Production:

Répertorier toutes les prises d'écoute actuelles

Pour récupérer uniquement les informations relatives aux sockets en cours d'écoute, utilisez l'indicateur -l avec la commande. Le -l signifie Écoute .

 ss -l

Ss affichera toutes les prises d'écoute actives sur votre appareil ou votre réseau. Notez que presque toutes les prises de la sortie ont un état non connecté.

Dès qu'un socket d'écoute reçoit une connexion entrante, il crée un socket enfant et l'utilise pour établir la connexion. Vous pouvez ensuite utiliser l'utilitaire Linux tcpdump pour surveiller et filtrer les paquets sur votre réseau.

Afficher les connexions TCP, UDP et Unix

Sous Linux, il existe différents types de sockets, notamment les sockets TCP, UDP et Unix. Vous pouvez lister toutes les connexions appartenant à un type de socket spécifique avec ss.

Pour répertorier chaque socket TCP sur votre ordinateur :

 ss -t

Production:

L'indicateur -u affichera une liste de toutes les sockets UDP :

 ss -u

Production:

Pour récupérer une liste de sockets Unix à l'aide de ss, utilisez l' option -x :

 ss -x

Production:

Par défaut, ss n'affiche que les sockets connectés. Pour obtenir une liste de toutes les sockets, quel que soit l'état de la connexion, utilisez l' option -a avec la commande :

 ss -ta
ss -ua
ss -xa

Filtrer les connexions TCP à l'aide de l'état

Les sockets TCP ont plusieurs états que vous pouvez utiliser pour filtrer les résultats. Vous pouvez utiliser les états de socket suivants pour filtrer les connexions avec ss : établi, fermé, en écoute, en fermeture, tout, connecté, synchronisé, seau, gros, temps d'attente, etc.

Le format de base pour filtrer les connexions TCP à l'aide de l'état de la connexion est :

 ss -t state filter

…où filtre est l'état des connexions, par exemple, établies.

Connexe: Termes courants de réseautage domestique et ce qu'ils signifient

Répertorier les connexions IPv4 et IPv6

Vous pouvez utiliser les indicateurs -4 et -6 pour obtenir une liste des sockets IPv4 et IPv6 sur votre appareil :

 ss -4
ss -6

Production:

Vous pouvez également utiliser la méthode state pour filtrer les sockets IPv4 et IPv6.

 ss -4 state established
ss -6 state established

Filtrer les connexions à l'aide du numéro de port

Vous pouvez spécifier les valeurs dport et sport dans la commande ss pour filtrer les connexions à l'aide du numéro de port et du protocole. Les options dport et sport représentent respectivement le port de destination et le port source .

Pour obtenir des informations relatives aux connexions qui ont le port source 39700 ou le port de destination https :

 ss -ta '( dport = :https or sport = :39700)'

Production:

Vous pouvez également utiliser la méthode state en conjonction avec le filtre de port pour obtenir des résultats précis :

 ss -ta state established '( dport = :https or sport = :https )'

Lister les sockets bruts à l'aide de ss

Vous pouvez utiliser l'indicateur -w ou –raw pour afficher les sockets bruts sur votre appareil :

 ss -w
ss --raw

Production:

Afficher les connexions avec un périphérique spécifique

En utilisant ss, vous pouvez également afficher une liste de connexions avec une adresse de destination spécifique.

 ss dst ipaddress

…où ipaddress est l'adresse de l'appareil de destination.

Par example:

Afficher les ID de processus des connexions

Lors du dépannage d'un réseau, connaître l'ID de processus de la connexion problématique peut être très utile.

Pour afficher les PID associés aux connexions TCP :

 ss -t -p

Ss affiche également le nom de l'application qui a établi la connexion.

De plus, vous pouvez obtenir des informations plus détaillées sur le processus à l' aide de la commande ps .

Obtenez un résumé des statistiques du réseau

L'indicateur -s permet à un utilisateur d'afficher le résumé global de son réseau ou de son périphérique. Le récapitulatif comprend le nombre total de connexions, le nombre et le type de prises, etc.

 ss -s

Production:

En savoir plus : pourquoi vous devriez utiliser les outils de mise en réseau Linux dans WSL

Envoyer la sortie dans un fichier

Vous pouvez également enregistrer la sortie de la commande ss dans un fichier pour référence ultérieure à l'aide de l'opérateur de sortie > .

 ss > output.txt

Production:

Implémentation de ss avec grep

Si vous souhaitez filtrer les données fournies par ss mais que vous ne parvenez pas à vous rappeler le format de la commande, vous pouvez diriger grep avec ss pour obtenir les résultats souhaités.

Par exemple, pour obtenir une liste de toutes les connexions TCP établies à l'aide de ss et grep :

 ss -t | grep ESTAB

Production:

Surveillance des connexions réseau sous Linux

Sous Linux, il y a une commande pour tout. De la création de fichiers à la surveillance des réseaux, vous le nommez. Mais avec cette énorme collection d'utilitaires vient la question de savoir lequel est le meilleur.

Outre le côté logiciel d'un ordinateur, les utilisateurs doivent également bien connaître les spécifications matérielles de leur système. Plusieurs commandes sont disponibles qui permettent à un utilisateur d'extraire facilement des informations relatives à son système et son matériel.