L'outil ss est une commande CLI utilisée pour afficher des informations sur le socket réseau sous Linux. Le ss signifie statistiques de socket. C'est un outil similaire à netstat, qui peut afficher plus d'informations telles que TCP et des informations d'état.
L'outil ss est fourni avec le package iproute2. Il peut afficher des statistiques pour les sockets de domaine PACKET, TCP, UDP, DCCP, RAW et Unix.
Dans ce tutoriel, nous apprenons la commande ss sous Linux avec des exemples utiles.
1. Lister la connexion réseau
La commande ss sans aucune option répertorie tous les sockets ouverts non à l'écoute (par exemple, TCP/UNIX/UDP) qui ont établi une connexion.
$ ss
- Netid :Il affiche les types de sockets.
- État :affiche l'état d'une prise si elle est établie (ESTAB), non connectée (UNCONN) ou à l'écoute (LISTEN).
- Recv-Q :affiche le nombre de paquets reçus dans la file d'attente.
- Send-Q :affiche le nombre de paquets envoyés dans la file d'attente.
- Adresse locale :port :affiche l'adresse de la machine locale et le port.
- Peer address:port :affiche l'adresse de la machine distante et le 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 sockets en écoute avec -l
ou --listen
option.
$ ss -l
3. Lister toutes les sockets
Vous pouvez répertorier toutes les connexions réseau à l'écoute et non à l'écoute en utilisant le -a
ou -all
option.
$ ss -a
4. Lister les connexions TCP
Pour afficher la connexion socket TCP, utilisez le -t
ou --tcp
option.
$ ss -t
Pour afficher la liste de toutes les connexions TCP , vous pouvez utiliser le -a
et -t
options. Cela inclut tous les états du socket.
$ ss -at
Pour afficher la connexion TCP pour tous les états d'écoute, combinez -l
et -t
options.
$ ss -alt
5. Lliste connexion UDP
Pour afficher la connexion socket UDP, utilisez -u
ou --udp
option.
$ ss -u
Pour afficher la liste de toutes les connexions UDP , utilisez -a
et -u
options. 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 tous les sockets Unix, vous pouvez utiliser la commande ss avec -f unix
ou -x
.
$ ss -f unix
7. Lister les sockets bruts
Pour afficher toutes les sockets Raw, vous pouvez utiliser -w
ou l'option --raw.
$ ss -w
8. Lister la connexion d'une adresse IP
Nous pouvons utiliser la commande ss pour afficher la connexion de liste d'une destination spécifique ou d'une adresse IP source.
Par exemple, pour lister la connexion de l'adresse IP de destination :
$ ss dst 13.227.138.30
Par exemple, pour lister la connexion de l'adresse IP source :
$ ss src 192.168.18.151
9. Répertorier les connexions de 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 socket IPv4 :
$ ss -4
Pour afficher la liste des connexions socket IPv6 :
$ ss -6
Pour répertorier toutes les connexions TCP IPv4, vous pouvez utiliser l'exemple suivant.
$ ss -at4
10. Identifier les processus
Vous pouvez trouver les processus des sockets en utilisant le -p
option avec la commande ss. Pour identifier le processus, vous aurez besoin de l'autorisation sudo.
$ sudo ss -t -p
11. Lister les connexions sans résolution de nom d'hôte
Pour résoudre l'adresse/les ports numériques, utilisez l'option -r (résolution). Alors que le -n
l'option n'essaie pas de résoudre les noms de service.
Ici, dans l'exemple, 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 afficher des informations spécifiques.
Pour filtrer la connexion TCP avec écoute d'état, 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 la 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
commande ss contre 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 didacticiel, nous avons découvert la commande ss avec quelques exemples utiles. Vous pouvez consulter la page de manuel de la commande ss pour plus d'informations.