Commande SS sous Linux avec des exemples utiles

L’outil ss est une commande CLI utilisée pour afficher des informations sur le socket réseau sous Linux. Le ss représente les statistiques de socket. C’est un outil similaire à netstat, qui peut afficher plus d’informations telles que TCP et les informations d’état.

L’outil ss est fourni avec le package iproute2. Il peut afficher les statistiques des sockets de domaine PACKET, TCP, UDP, DCCP, RAW et Unix.

Dans ce tutoriel, nous apprenons commande ss sous Linux avec des exemples utiles.

1. Liste des connexions réseau

La commande ss sans aucune option répertorie tous les sockets ouverts sans écoute (par exemple TCP/UNIX/UDP) qui ont établi une connexion.

$ ss

  1. Netid : Il affiche les types de sockets.
  2. État : affiche l’état d’une socket si elle est établie (ESTAB), non connectée (UNCONN) ou en écoute (LISTEN).
  3. Recv-Q : Il affiche le nombre de paquets reçus dans la file d’attente.
  4. Send-Q : Il affiche le nombre de paquets envoyés dans la file d’attente.
  5. Adresse locale : port : Affiche l’adresse de la machine locale et du port.
  6. Peer address:port : Il affiche l’adresse de la machine distante et du port.

Vous pouvez obtenir des informations plus détaillées en utilisant la commande ss conjointement avec les options. Vous pouvez également sélectionner plusieurs options en même temps.

syntaxe de la commande ss :

$ ss [Option]

$ ss [Option1] [Option2] [Option3]

2. Lister les sockets d’écoute

Pour afficher la liste des prises d’écoute à l’aide -l ou --listen option.

$ ss -l

prises d'écoute

3. Lister toutes les sockets

Vous pouvez répertorier toutes les connexions réseau d’écoute et de non-écoute à l’aide de la -a ou -all option.

$ ss -a

lister toutes les sockets

4. Liste des connexions TCP

Pour afficher la connexion du socket TCP, utilisez le -t ou --tcp option.

$ ss -t

afficher la connexion TCP

Pour afficher la liste des toutes les connexions TCP, vous pouvez utiliser le -a et -t option. Cela inclut tous les états du socket.

$ ss -at

Pour afficher la connexion TCP pour tous les états d’écoute, combinez -l et -t option.

$ ss -alt

5. LPremière connexion UDP

Pour afficher la connexion socket UDP, utilisez -u ou --udp option.

$ ss -u

afficher la connexion UDP

Pour afficher le liste de toutes les connexions UDP, utiliser -a et -u option. Cela inclut tous les états du socket.

$ ss -au

Vous pouvez combiner -l et -u pour afficher la connexion UDP pour tous les états d’écoute.

$ ss -lu

6. Lister les sockets Unix

Pour afficher toutes les sockets Unix, vous pouvez utiliser la commande ss avec -f unix ou -x.

$ ss -f unix

Lister les sockets Unix

7. Lister les sockets bruts

Pour afficher toutes les sockets Raw, vous pouvez utiliser -w ou –raw option.

$ ss -w

Lister les sockets bruts

8. Lister la connexion d’une adresse IP

Nous pouvons utiliser la commande ss pour afficher la liste de connexion d’une adresse IP de destination ou source spécifique.

Pour example pour lister la connexion de l’adresse IP de destination :

$ ss dst 13.227.138.30

lister la connexion de l'adresse ip

Pour example pour lister la connexion de l’adresse IP source :

$ ss src 192.168.18.151

9. Liste des connexions socket IPv4 et IPv6

Si vous souhaitez afficher la liste des connexions socket IPv4, utilisez l’option -4 et -6 pour afficher la liste des connexions socket IPv6.

Pour afficher la liste des connexions de socket IPv4 :

$ ss -4

lister les sockets IPv4

Pour afficher la liste des connexions de socket IPv6 :

$ ss -6

Liste des sockets IPv6

Pour répertorier toutes les connexions TCP IPv4, vous pouvez utiliser les éléments suivants example.

$ ss -at4

10. Identifier les processus

Vous pouvez trouver le processus de sockets en utilisant le -p avec la commande ss. Pour identifier le processus, vous aurez besoin sudo autorisation.

$ sudo ss -t -p

lister les processus

11. Lister la connexion sans résolution de nom d’hôte

Pour résoudre l’adresse numérique/les ports, utilisez l’option -r (résolution). Tandis que le –n L’option n’essaie pas de résoudre les noms de service.

Ici dans le example, vous pouvez voir la différence entre les deux :

$ ss -tn
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 0 74.208.235.196:22 48.192.234.17:60216
$ ss -tr
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 64 li82-186.members.linode.com:ssh n47-172-231-17.sun4.vic.optusnet.com.au:60317
$

12. Filtrer par connexion

Voyons quelques exemples d’application de filtres pour générer des informations spécifiques.

Pour filtrer la connexion TCP avec état d’écoute, tapez :

$ ss -t state listening

Pour afficher les connexions de port ssh établies :

$ ss -tr state established '( dport = :22 or sport = :22 )'

Vous pouvez également utiliser la méthode traditionnelle de la commande grep pour filtrer. Ici, j’affiche toutes les connexions TCP qui écoutent dans l’état :

$ ss -at | grep LISTEN

options de commande ss

La commande ss fournit diverses options pour contrôler la sortie à afficher selon vos besoins. Vous pouvez utiliser -h ou –help avec la commande ss pour afficher les options de base disponibles avec l’utilitaire de commande ss.

$ ss -h

options de commande ss

commande ss vs netstat

L’outil ss est inclus dans le package iproute2 et sa valeur par défaut dans la plupart des distributions Linux. Pour avoir netstat, vous devez installer net-tools, qui est déjà obsolète. La commande ss est beaucoup plus rapide car elle récupère directement depuis le noyau. Le ss n’est pas un remplacement complet de netstat, une partie de la commande netstat est remplacée par la commande ip.

Conclusion

Dans ce tutoriel, nous avons découvert la commande ss avec quelques exemples utiles. Vous pouvez vous référer page de manuel de la commande ss pour plus d’informations.