Lister les ports ouverts sur un VPS

2 min de lecture07 novembre 2026

« Port ouvert » recouvre deux réalités : un processus écoute sur la machine, et ce port est joignable depuis l'extérieur. Un service peut écouter sur 127.0.0.1 sans être exposé, ou écouter sur 0.0.0.0 tout en étant bloqué par le pare-feu. Pour auditer un VPS, il faut vérifier les deux côtés.

Voir ce qui écoute

Bash
sudo ss -tulpn

Les options se lisent ainsi : -t TCP, -u UDP, -l sockets en écoute, -p processus, -n ports numériques. Sans sudo, le nom des processus des autres utilisateurs n'apparaît pas.

La colonne d'adresse locale indique la portée :

  • 127.0.0.1:5432 : accessible uniquement depuis la machine.
  • 0.0.0.0:80 : toutes les interfaces IPv4.
  • [::]:80 : toutes les interfaces IPv6, et souvent IPv4 selon la configuration.
  • [::1]:6379 : boucle locale IPv6 uniquement.

Pour cibler un port :

Bash
sudo ss -tlnp 'sport = :80'
sudo ss -tunlp
ss -t state established

netstat -tulpn donne un résultat comparable si net-tools est installé, mais ss est l'outil actuel. sudo lsof -i -P -n est utile pour relier un port à un processus et à ses fichiers.

Distinguer écoute et accessibilité

Un port en écoute n'est pas forcément joignable. Vérifiez le pare-feu local :

Bash
sudo ufw status verbose
sudo nft list ruleset

Puis testez depuis une autre machine que le VPS, jamais depuis lui-même, car une connexion locale contourne le filtrage externe :

Bash
nc -6 -vz VOTRE_IPV6 80
curl -6 -I http://VOTRE_IPV6

Un scan nmap est acceptable uniquement sur votre propre VPS et avec modération :

Bash
nmap -6 -Pn -p 22,80,443 VOTRE_IPV6

N'élargissez pas le scan à des plages qui ne vous appartiennent pas. Attention aussi à Docker : un port publié avec -p peut contourner UFW et être exposé malgré une politique de refus, car Docker insère ses propres règles.

Fermer ce qui est inutile

Pour chaque port, identifiez le service :

Bash
sudo ss -tlnp 'sport = :3000'
ps -fp PID
systemctl status nom-du-service

Si le service n'est pas nécessaire, arrêtez-le et désactivez-le au démarrage. S'il doit rester local, configurez-le pour écouter sur 127.0.0.1 plutôt que sur 0.0.0.0. Enfin, appliquez une politique de refus par défaut et n'ouvrez que le nécessaire :

Bash
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80,443/tcp

Ne tuez pas un processus inconnu sans l'avoir identifié : il peut s'agir d'un composant système ou d'un service dont dépend votre application.

Vérifier

Bash
sudo ss -tulpn
sudo ufw status

Après fermeture, le port doit disparaître de ss et le test externe doit échouer. Refaites le contrôle après un redémarrage : un service enabled peut rouvrir un port que vous croyiez fermé. Conservez SSH et la console noVNC accessibles pendant toute modification du pare-feu.

Publicité

Cet article vous a-t-il aidé ?

À lire aussi