Leçon 4 / 6
Leçon 04 · Partie 2 — En pratique

Ports et services

L'adresse IP ne suffit pas

Une adresse IP identifie un appareil sur le réseau. Mais un même ordinateur peut faire tourner des dizaines de services en même temps : un serveur web, un serveur email, une base de données, SSH…

Comment savoir quel service doit recevoir le paquet qui arrive ? C'est là qu'intervient le port.

🏢

Analogie : l'adresse IP, c'est l'adresse d'un immeuble. Le port, c'est le numéro d'appartement. Pour joindre quelqu'un précisément, tu as besoin des deux : adresse IP : port.

// Adresse complète : IP + Port

93.184.216.34:443
│              │
│              └─ port 443 = HTTPS
└──────────────── adresse IP du serveur

// Même serveur, services différents selon le port
93.184.216.34:80   → site web HTTP
93.184.216.34:443  → site web HTTPS
93.184.216.34:22   → SSH (administration)

La plage de ports

Les ports vont de 0 à 65535. Ils sont divisés en trois catégories :

// Plages de ports

01023Ports bien connus   // réservés aux services standards
102449151Ports enregistrés  // applications courantes (MySQL, etc.)
4915265535Ports dynamiques   // utilisés temporairement par le client

Les ports à connaître

Quelques ports sont tellement standardisés que tout le monde les connaît :

// Ports standards — à mémoriser

Port  21FTP       // transfert de fichiers (non chiffré)
Port  22SSH       // connexion sécurisée à distance
Port  25SMTP      // envoi d'emails
Port  53DNS       // résolution de noms de domaine
Port  80HTTP      // web non chiffré
Port 110POP3      // réception d'emails
Port 143IMAP      // réception d'emails (synchronisé)
Port 443HTTPS     // web chiffré (TLS) ← le plus courant
Port 3306MySQL     // base de données
Port 5432PostgreSQL// base de données
Port 6379Redis     // cache / base clé-valeur
Port 8080HTTP alt  // souvent utilisé pour dev / proxy
💡

Les ports en dessous de 1024 nécessitent des droits administrateur pour être ouverts. C'est pour ça que les serveurs web tournent souvent sur le port 80 ou 443 avec un utilisateur privilégié, ou via un reverse proxy.

Le firewall — gardien des ports

Un firewall (pare-feu) est un système qui contrôle quel trafic réseau est autorisé ou bloqué, basé sur des règles. Il décide : ce paquet peut-il entrer ou sortir ?

// Firewall — règles basiques

INTERNET  ──→  FIREWALL  ──→  Serveur
                 │
           AUTORISE : port 80  (HTTP)   → passe
           AUTORISE : port 443 (HTTPS)  → passe
           BLOQUE   : port 3306 (MySQL)  → refusé
           BLOQUE   : port 22  (SSH)     → refusé depuis internet

Un firewall bien configuré n'expose que les ports strictement nécessaires. Ton serveur MySQL n'a pas besoin d'être accessible depuis internet — le firewall ferme ce port aux connexions externes.

⚠️

Exposer un port MySQL (3306) ou Redis (6379) sur internet sans protection, c'est une des erreurs les plus courantes. Des robots scannent constamment tous les ports sur toutes les adresses IP publiques. Si un port est ouvert et non protégé, il sera trouvé.

Comment ton navigateur utilise les ports

Quand tu tapes une URL dans ton navigateur, il utilise automatiquement le bon port :

// Ports implicites dans les URLs

http://example.com          → port 80  (implicite)
https://example.com         → port 443 (implicite)
http://localhost:3000       → port 3000 (explicite)
https://example.com:8443   → port 8443 (explicite non-standard)

Tu n'as jamais besoin de taper :443 pour aller sur un site HTTPS — le navigateur le sait déjà. Mais si un service tourne sur un port non-standard (comme :3000 en développement), il faut l'indiquer explicitement.

// À retenir
  • Port = numéro d'appartement dans l'immeuble (l'immeuble = l'adresse IP).
  • Ports : 0–65535. En dessous de 1024 → services standards, droits admin requis.
  • 22=SSH, 25=SMTP, 53=DNS, 80=HTTP, 443=HTTPS, 3306=MySQL.
  • Firewall = gardien qui autorise ou bloque selon les ports et règles définies.
  • Ne jamais exposer les ports de BDD (3306, 5432, 6379) sur internet directement.