Un protocole à deux connexions
FTP (File Transfer Protocol, RFC 959) est l’un des plus anciens protocoles d’Internet. Contrairement à HTTP, il sépare les échanges en deux connexions TCP :
| Connexion | Port côté serveur | Ce qui y circule |
|---|---|---|
| Canal de commandes (contrôle) | 21 | Les commandes du client (USER, PASS, LIST, RETR, STOR, QUIT…) et les réponses numérotées du serveur (220, 230, 226…) |
| Canal de données | Variable selon le mode | Le contenu des fichiers et des listes de répertoires. Une nouvelle connexion est ouverte pour chaque transfert. |
Le canal de commandes reste ouvert pendant toute la session.
Mode actif et mode passif
Toute la difficulté de FTP tient à une question : qui ouvre le canal de données ?
Mode actif (commande PORT) | Mode passif (commande PASV) | |
|---|---|---|
| Qui ouvre la connexion de données ? | Le serveur se connecte au client | Le client se connecte au serveur |
| Qui choisit le port ? | Le client annonce le port où il attend | Le serveur annonce le port où il attend |
| Derrière un pare-feu ou un NAT côté client | Bloqué : une connexion entrante vers le client est refusée | Fonctionne : toutes les connexions partent du client |
| Usage aujourd’hui | Rare | Mode par défaut des clients |
Décoder la réponse PASV
En mode passif, le serveur répond par exemple :
227 Entering Passive Mode (192,168,10,40,195,80)
Les quatre premiers nombres forment l’adresse IP : 192.168.10.40. Les deux derniers forment le port : 195 × 256 + 80 = 50 000. Le client ouvre alors une connexion vers 192.168.10.40, port 50 000, pour le transfert.
Manipulation : piloter FTP à la main
# Terminal 1 : le canal de commandes
$ nc 192.168.10.40 21 # ou : telnet 192.168.10.40 21
220 (vsFTPd 3.0.3)
USER etudiant
331 Please specify the password.
PASS ********
230 Login successful.
PASV
227 Entering Passive Mode (192,168,10,40,195,80)
LIST
# Terminal 2 : le canal de données, sur le port calculé
$ nc 192.168.10.40 50000 # la liste du répertoire s'affiche ici
© 2026 Bruno Jousseaume. Ce cours est publié sous licence CC BY-NC-SA 4.0 : vous pouvez le partager et l’adapter en citant l’auteur et un lien vers cette page, sans usage commercial, et en partageant vos adaptations sous la même licence.