Lister les ports ouverts, identifier les processus qui écoutent et tester la connectivité réseau.
Sujets associés : Paquets IP et TCP, UDP, Protocoles OSI — Vue d’ensemble
ss — socket statistics (recommandé)
ss remplace netstat. Plus rapide car il interroge directement le noyau.
# Tous les sockets (listening + établis)
ss
# Sockets TCP
ss -t
# Sockets UDP
ss -u
# Sockets UNIX (fichiers socket)
ss -x
# Sockets en écoute uniquement
ss -l
# Afficher les processus associés (PID + nom)
ss -p
# Afficher les ports en numérique (sans résolution DNS)
ss -n
# Combinaisons courantes
ss -tuln # TCP+UDP, listening, numérique → vue rapide des ports ouverts
ss -tunp # TCP+UDP, numérique + processus
ss -tnp # TCP uniquement avec processus
ss -tlnp # TCP listening avec processus
# Filtrer par port
ss -tnp '( dport = :443 or sport = :443 )'
ss -tnp dport :80
# Filtrer par état TCP
ss -t state established
ss -t state time-wait
ss -t state listening
# Statistiques globales
ss -s
# Afficher les connexions d'un processus spécifique
ss -tnp | grep nginx
ss -tnp | grep :8080Lecture de ss -tuln :
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* ← SSH écoute sur toutes les IPs
tcp LISTEN 0 511 127.0.0.1:5432 0.0.0.0:* ← Postgres écoute seulement local
tcp ESTAB 0 0 192.168.1.50:22 192.168.1.10:52341 ← connexion SSH active
udp UNCONN 0 0 0.0.0.0:53 0.0.0.0:* ← DNS écoute
netstat — outil legacy (encore présent partout)
# Ports en écoute TCP+UDP
netstat -tuln
# Avec processus
netstat -tulnp
# Toutes les connexions TCP
netstat -tn
# Statistiques
netstat -s
# Table de routage
netstat -rn
# Interfaces réseau
netstat -ilsof — fichiers ouverts (dont sockets)
# Tous les fichiers réseau ouverts
sudo lsof -i
# Connexions sur un port spécifique
sudo lsof -i :80
sudo lsof -i :443
sudo lsof -i :8080
# Connexions d'un processus spécifique
sudo lsof -i -p 1234
sudo lsof -c nginx # par nom de commande
# Connexions TCP en écoute
sudo lsof -i TCP -s TCP:LISTEN
# Connexions d'un utilisateur
sudo lsof -u www-data -i
# Fichiers ouverts par un processus
lsof -p 1234
# Trouver quel processus utilise un port
sudo lsof -i :80 | grep LISTENnc (netcat) — couteau suisse TCP/UDP
Tester la connectivité
# Tester si un port est ouvert (TCP)
nc -zv 192.168.1.50 80
nc -zv google.com 443
# │└─ verbose (affiche le résultat)
# └── zero I/O (ne rien envoyer, juste tester)
# Tester un port UDP
nc -zuv 8.8.8.8 53
# Tester une plage de ports
nc -zv 192.168.1.50 20-25
nc -zv 192.168.1.50 80 443 8080
# Avec timeout (3 secondes)
nc -zvw 3 192.168.1.50 443Serveur et client simples
# Serveur TCP : écouter sur un port
nc -l 8888 # écoute sur 0.0.0.0:8888
nc -l -p 8888 192.168.1.50 # écoute sur une IP spécifique
# Client : se connecter
nc 192.168.1.50 8888
# Transfert de fichier (server → client)
# Côté récepteur
nc -l 9999 > fichier_reçu.txt
# Côté envoyeur
nc 192.168.1.50 9999 < fichier.txt
# Chat simple entre deux machines
# Machine A
nc -l 8888
# Machine B
nc 192.168.1.10 8888Requêtes HTTP manuelles
# Faire une requête HTTP "à la main"
echo -e "GET / HTTP/1.0\r\nHost: exemple.com\r\n\r\n" | nc exemple.com 80
# Vérifier le banner d'un service
nc 192.168.1.50 22 # affiche le banner SSH
nc 192.168.1.50 25 # affiche le banner SMTP
nc 192.168.1.50 21 # affiche le banner FTPScanner de ports (alternatif à nmap)
# Scanner rapidement les ports courants
for port in 21 22 23 25 53 80 443 3306 5432 8080 8443; do
nc -zw 1 192.168.1.50 $port 2>/dev/null && echo "Port $port: ouvert"
donePorts importants à connaître
| Port | Protocole | Service |
|---|---|---|
| 20/21 | TCP | FTP (données / contrôle) |
| 22 | TCP | SSH |
| 23 | TCP | Telnet (non sécurisé) |
| 25 | TCP | SMTP |
| 53 | TCP/UDP | DNS |
| 67/68 | UDP | DHCP (serveur/client) |
| 80 | TCP | HTTP |
| 110 | TCP | POP3 |
| 123 | UDP | NTP |
| 143 | TCP | IMAP |
| 389 | TCP | LDAP |
| 443 | TCP | HTTPS |
| 465/587 | TCP | SMTP sécurisé |
| 993 | TCP | IMAPS |
| 995 | TCP | POP3S |
| 3306 | TCP | MySQL / MariaDB |
| 5432 | TCP | PostgreSQL |
| 5672 | TCP | RabbitMQ AMQP |
| 6379 | TCP | Redis |
| 8080 | TCP | HTTP alternatif |
| 8443 | TCP | HTTPS alternatif |
| 27017 | TCP | MongoDB |
Recettes complètes
# Trouver quel processus écoute sur le port 80
sudo ss -tlnp | grep :80
sudo lsof -i :80 | grep LISTEN
# Lister tous les ports ouverts sur une machine distante
nmap -sT -p- --open 192.168.1.50
# Vérifier si un service accepte les connexions TLS
openssl s_client -connect api.exemple.com:443 -servername api.exemple.com < /dev/null
# Surveiller les nouvelles connexions TCP en temps réel
sudo ss -tnp | watch -n 1
# Compter les connexions établies par IP (pour détecter un DDoS)
ss -tn state established | awk 'NR>1{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | headEn relation avec
- Linux Réseau — Vue d’ensemble — index des commandes réseau Linux
- Firewall et iptables — bloquer / autoriser des ports
- Diagnostics réseau — tester la connectivité depuis l’extérieur
- Analyse de trafic — tcpdump pour capturer le trafic sur ces ports
- Paquets IP et TCP — notion de port TCP/UDP