Comment vérifier les ports ouverts sur Linux : guide complet 2026

Terminal Linux affichant les ports ouverts avec les commandes ss et netstat

Savoir comment vérifier les ports ouverts sur Linux est une compétence fondamentale pour quiconque gère des serveurs, résout des problèmes réseau ou renforce la sécurité d'un système. Un port ouvert est essentiellement une porte d'entrée vers ta machine - et si tu ne sais pas quelles portes sont ouvertes, tu ne peux pas les sécuriser correctement. Que tu fasses tourner un serveur web sur Ubuntu, que tu gères un VPS ou que tu diagnostiques un problème de connectivité, lister les ports ouverts te donne une vision claire de ce que ton système expose au réseau. Ce guide présente quatre méthodes concrètes, explique comment filtrer les résultats et te montre comment fermer les ports dont tu n'as pas besoin.

Points clés à retenir :

  • La commande ss est la méthode moderne et la plus rapide pour lister les ports ouverts sur Linux.
  • nmap te permet de scanner les ports depuis une perspective externe, ce qui révèle ce qu'un attaquant voit réellement.
  • Utilise lsof pour identifier immédiatement quel processus utilise un port donné.
  • Fermer les ports inutiles avec ufw ou iptables est le moyen le plus direct de réduire ta surface d'attaque.

Pourquoi vérifier les ports ouverts sur Linux

Chaque service qui tourne sur ta machine Linux écoute sur un ou plusieurs ports. SSH écoute sur le port 22, HTTP sur le port 80, HTTPS sur le port 443. Mais après des mois d'installations et de suppressions de logiciels, les serveurs se retrouvent souvent avec des ports ouverts que personne n'a intentionnellement configurés. Un daemon de base de données oublié qui écoute sur le port 5432 sans règle de pare-feu est un risque bien réel qui a déjà conduit à des fuites de données.

Vérifier les ports ouverts sur Linux te permet de :

  • Auditer les services réellement actifs et exposés.
  • Comprendre pourquoi une application ne parvient pas à se connecter à un autre service.
  • Vérifier que tes règles de pare-feu fonctionnent comme prévu.
  • Te préparer à un audit de sécurité ou à un test d'intrusion.

Les méthodes ci-dessous couvrent à la fois l'inspection locale (ce que la machine elle-même rapporte) et le scan externe (ce qu'un hôte distant peut voir). Les deux perspectives sont importantes.

Méthode 1 : Commande ss (moderne, recommandée)

La commande ss (socket statistics) a remplacé netstat sur la plupart des distributions Linux modernes. Elle est plus rapide, plus détaillée, et intégrée au paquet iproute2, livré par défaut sur Ubuntu, Debian, CentOS et Fedora.

Pour lister tous les ports ouverts avec le nom des processus associés, exécute :

sudo ss -tulnp

Détail des options :

  • -t - afficher les sockets TCP
  • -u - afficher les sockets UDP
  • -l - afficher uniquement les sockets en écoute
  • -n - afficher les numéros de ports plutôt que les noms de services
  • -p - afficher le processus associé à chaque socket

Exemple concret : Sur un serveur Ubuntu fraîchement configuré avec Nginx et PostgreSQL, la sortie pourrait ressembler à ceci :

Netid  State   Recv-Q  Send-Q  Local Address:Port  Peer Address:Port  Process
tcp    LISTEN  0       128     0.0.0.0:80           0.0.0.0:*          users:(("nginx",pid=1234,fd=6))
tcp    LISTEN  0       128     127.0.0.1:5432       0.0.0.0:*          users:(("postgres",pid=5678,fd=5))
tcp    LISTEN  0       128     0.0.0.0:22           0.0.0.0:*          users:(("sshd",pid=910,fd=3))

Remarque que PostgreSQL est lié uniquement à 127.0.0.1, ce qui signifie qu'il n'est pas accessible depuis l'extérieur. SSH et Nginx sont liés à 0.0.0.0, ce qui signifie qu'ils acceptent des connexions depuis n'importe quelle adresse IP. Cette seule sortie t'en dit long sur ton exposition.

Pour une référence complète de toutes les options de ss, consulte la page de manuel officielle de ss.

Méthode 2 : Commande netstat (ancienne mais encore courante)

La commande netstat fait partie de l'ancien paquet net-tools. Elle n'est plus installée par défaut sur de nombreuses distributions, mais elle reste très utilisée et mérite d'être connue - notamment lorsqu'on travaille sur des systèmes plus anciens.

Installe-la si nécessaire :

sudo apt install net-tools   # Debian/Ubuntu
sudo yum install net-tools   # CentOS/RHEL

Pour lister les ports ouverts sur Linux avec netstat :

sudo netstat -tulnp

Les options ont la même signification que pour ss. Le format de sortie est légèrement différent, mais fournit les mêmes informations essentielles : protocole, adresse locale, port et processus propriétaire.

Une limitation pratique : sur des serveurs très chargés avec des milliers de connexions, netstat peut être sensiblement plus lent que ss. Pour un usage quotidien sur un serveur classique, la différence est négligeable.

Méthode 3 : Scan de ports avec nmap (perspective externe)

Les outils présentés ci-dessus montrent ce que ta machine rapporte en interne. nmap adopte une approche différente - il scanne les ports via le réseau, en simulant ce qu'un attaquant externe ou un client distant verrait. C'est essentiel, car un pare-feu peut bloquer un port que ss affiche pourtant comme étant en écoute.

Installe nmap :

sudo apt install nmap   # Debian/Ubuntu
sudo yum install nmap   # CentOS/RHEL

Scanner un serveur depuis une autre machine sur le même réseau :

nmap -sT -p 1-1024 192.168.1.10

Pour scanner les 1000 ports les plus courants avec détection de version de service :

nmap -sV 192.168.1.10

L'option -sV tente de détecter la version du logiciel qui tourne sur chaque port ouvert. C'est utile pour identifier des services obsolètes qui nécessitent une mise à jour.

Important : N'utilise nmap que sur des serveurs que tu possèdes ou pour lesquels tu as une autorisation explicite. Scanner des systèmes tiers sans permission peut être illégal selon ta juridiction.

Si tu as besoin de vérifier si un port spécifique est accessible depuis l'extérieur de ton réseau sans installer nmap, notre outil gratuit de vérification de ports s'en charge instantanément - sans installation ni configuration.

Méthode 4 : Commande lsof (correspondance processus/port)

La commande lsof (list open files) traite les sockets réseau comme des fichiers, ce qui est cohérent avec la philosophie Linux "tout est un fichier". Elle est particulièrement utile lorsque tu dois répondre à la question : "Quel processus utilise le port 8080 ?"

Lister toutes les connexions réseau :

sudo lsof -i

Trouver le processus qui utilise un port spécifique (par exemple, le port 3000) :

sudo lsof -i :3000

C'est particulièrement pratique quand une application Node.js d'un développeur bloque un port et que tu dois identifier et arrêter le processus avant de redémarrer un service.

Comment filtrer les résultats par port, TCP ou UDP

La sortie brute de ces outils peut être volumineuse. Voici les patterns de filtrage les plus utiles :

Afficher uniquement les ports TCP en écoute (ss) :

sudo ss -tlnp

Afficher uniquement les ports UDP (ss) :

sudo ss -ulnp

Vérifier si un port spécifique est ouvert (grep avec ss) :

sudo ss -tulnp | grep :443

Filtrer par port avec nmap :

nmap -p 80,443,8080 192.168.1.10

Ces patterns couvrent la grande majorité des besoins de filtrage au quotidien. Pour le dépannage HTTP spécifique au port 80, consulte notre guide de dépannage HTTP pour le port 80.

Si tu es sur Windows et que tu as besoin du même type de guide, consulte notre guide complet pour vérifier les ports ouverts sur Windows 2026.

Comment fermer ou bloquer un port avec ufw ou iptables

Identifier un port ouvert dont tu n'as pas besoin n'est que la moitié du travail. Voici comment le fermer avec les deux outils de pare-feu les plus courants sous Linux.

Avec ufw (Uncomplicated Firewall) - recommandé pour Ubuntu

Bloquer le trafic entrant sur le port 8080 :

sudo ufw deny 8080/tcp

Autoriser uniquement SSH et HTTPS, et refuser tout le reste :

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Vérifier l'état actuel du pare-feu :

sudo ufw status verbose

Avec iptables - pour un contrôle avancé

Bloquer tout le trafic entrant sur le port 3306 (MySQL) :

sudo iptables -A INPUT -p tcp --dport 3306 -j DROP

Sauvegarder les règles pour qu'elles persistent après un redémarrage :

sudo iptables-save | sudo tee /etc/iptables/rules.v4

Pour une référence approfondie sur la syntaxe et l'ordre des règles iptables, la documentation officielle Netfilter fait autorité.

Conseil : Bloquer un port avec ufw ou iptables n'arrête pas le service qui tourne dessus - cela empêche simplement les connexions externes d'y accéder. Si tu veux arrêter complètement le service, utilise sudo systemctl stop servicename. Pour une suppression définitive, exécute aussi sudo systemctl disable servicename pour éviter qu'il redémarre au prochain démarrage du système.

Conclusion

Vérifier les ports ouverts sur Linux ne nécessite ni outils complexes ni expertise avancée. La commande ss te donne une vue locale rapide et fiable. nmap te montre ce que le monde extérieur peut atteindre. lsof identifie précisément quel processus utilise un port. Et ufw ou iptables te permet de fermer tout ce qui ne devrait pas être exposé. Effectuer ces vérifications régulièrement - surtout après l'installation de nouveaux logiciels ou la modification de configurations réseau - est l'une des habitudes les plus simples à adopter pour garder tes serveurs Linux sécurisés. Commence dès maintenant avec sudo ss -tulnp et vois ce que ton serveur expose réellement.

Outil gratuit de vérification de ports - vérifie instantanément si un port est ouvert sur ton serveur Linux

Vérifie n'importe quel port sur ton serveur Linux - instantanément

Tu n'es pas sûr qu'un port soit vraiment accessible depuis l'extérieur ? Notre outil gratuit de vérification de ports scanne ton serveur depuis une perspective externe en quelques secondes - sans installation, sans configuration.

Essaie notre outil gratuit de vérification de ports →

FAQ - Questions fréquentes

Exécute sudo ss -tulnp dans ton terminal. Cette commande utilise le moderne ss pour afficher tous les ports TCP et UDP en écoute ainsi que le nom du processus associé. Elle est plus rapide que netstat et disponible par défaut sur la plupart des distributions Linux actuelles, notamment Ubuntu et Debian.

Les deux commandes affichent les ports ouverts et les informations sur les sockets, mais ss est le remplaçant moderne de netstat. Il lit les données directement depuis le noyau, ce qui le rend plus rapide et plus précis sur les systèmes chargés. netstat nécessite le paquet séparé net-tools, qui n'est plus installé par défaut sur de nombreuses distributions.

Utilise nmap -p PORT TARGET_IP depuis une autre machine sur le réseau. Pour une vérification externe rapide sans rien installer, utilise un outil de vérification de ports en ligne. Cette approche teste si le port est accessible depuis l'extérieur, en tenant compte des règles de pare-feu que les outils locaux comme ss ne peuvent pas refléter.

Utilise sudo lsof -i :PORT ou sudo ss -tulnp | grep :PORT. Les deux commandes affichent le nom du processus et son PID associé à ce port. La méthode lsof est particulièrement lisible car elle liste la commande, le PID et l'utilisateur dans un format clair.

Non. Bloquer un port avec ufw ou iptables empêche les connexions externes d'atteindre le service, mais le service lui-même continue de tourner. Pour l'arrêter complètement, utilise sudo systemctl stop servicename. Pour une suppression définitive, exécute aussi sudo systemctl disable servicename pour éviter qu'il redémarre au prochain démarrage du système.