Pour tout administrateur système Linux, l’analyse des flux réseau locaux est une tâche quotidienne incontournable. Que ce soit pour diagnostiquer un service qui refuse de démarrer, repérer une connexion suspecte ou vérifier l’état d’un démon, l’inspection des sockets réseau s’avère indispensable. Longtemps assurée par le vénérable netstat (issu du paquet net-tools), cette fonction est aujourd’hui avantageusement confiée à l’utilitaire ss (Socket Statistics), intégré à la suite logicielle moderne iproute2.
Pourquoi privilégier ss face à netstat ?
L’outil netstat parcourait les fichiers virtuels du système /proc pour extraire les informations réseau, ce qui provoquait d’importants ralentissements sur les serveurs hébergeant des dizaines de milliers de connexions simultanées. À l’inverse, ss communique directement avec l’espace noyau via l’interface Netlink. Le résultat est immédiat, plus complet et consomme nettement moins de ressources système.
Dans la même logique que l’utilisation de la commande ip link pour la gestion des interfaces au détriment de l’ancien ifconfig, ss est devenu la référence absolue sur l’ensemble des distributions modernes telles que Debian, Ubuntu, Rocky Linux ou CentOS.
Les options indispensables au quotidien
Exécutée seule, la commande affiche l’ensemble des connexions non fermées. Pour obtenir un résultat synthétique et directement exploitable, plusieurs commutateurs sont couramment combinés :
- -t : filtre uniquement les sockets TCP.
- -u : filtre uniquement les sockets UDP.
- -l : affiche uniquement les sockets en état d’écoute (LISTEN).
- -a : liste tous les sockets, qu’ils soient en écoute ou déjà établis.
- -n : désactive la résolution DNS et des services (affiche les adresses IP et les numéros de ports en brut, ce qui accélère le retour).
- -p : affiche le nom du processus et le PID propriétaire du socket (nécessite les privilèges administrateur).
Afficher les services en écoute
Pour surveiller les démons actifs et identifier les ports ouverts sur votre machine hôte, la combinaison reine est la suivante :
sudo ss -tulpn
Cette commande dresse l’inventaire précis des services TCP et UDP en écoute, avec leur adresse d’écoute (locale ou globale) et le binaire associé. C’est particulièrement utile pour vérifier la prise en compte d’une liaison réseau après avoir choisi d’installer xinetd et telnet serveur linux ou configuré un serveur web.
Surveiller les connexions actives et établies
Pour traquer les clients actuellement connectés à une machine (par exemple sur une session SSH ou un transfert de fichiers) :
sudo ss -t -p state established
La sortie détaille les colonnes Recv-Q (données reçues mais pas encore lues par l’application) et Send-Q (données envoyées mais pas encore acquittées), deux indicateurs précieux pour déceler une saturation applicative ou un goulet d’étranglement réseau.
Filtrer les résultats avec précision
Plutôt que d’associer un grep souvent lourd, ss intègre un moteur de requêtes interne performant :
- Filtrer par port source ou destination : ss -nt ‘sport = :443’ permet de cibler les sockets émis depuis le port HTTPS local.
- Filtrer par adresse IP : ss -nt dst 192.168.1.50 permet d’isoler les flux envoyés vers un hôte spécifique.
- Filtrer par état TCP : ss -t state time-wait permet d’évaluer le nombre de sockets temporairement bloqués en fermeture, utile lors de pics de charge web.
En mémorisant les drapeaux -tulpn et les filtres d’états, vous disposez d’un outil de diagnostic complet, rapide et toujours disponible sur n’importe quel système Linux.




