Héberger un serveur FTP chez soi

(pour transmettre ou recevoir des fichiers)

Si vous souhaitez accéder à distance aux fichiers de votre ordinateur ou simplement partager des fichiers volumineux avec vos amis, un serveur FTP est une des meilleures solutions.

Un serveur FTP (File Transfer Protocol : protocole de transfert de fichier) est un petit programme qui met donc à disposition de tous ou de ceux que vous choisissez les fichiers que vous voulez sur internet. Ces fichiers seront téléchargeables à l'aide d'un navigateur (Internet Explorer, Firefox, ...), d'un gestionnaire de téléchargement (Netants, TrueDownloader, ...) ou d'un "client FTP". Un client FTP permet aussi d'envoyer des fichiers sur un serveur FTP (Internet Explorer gère aussi l'envoi, mais ne permet pas la reprise).

Si vous voulez partager des fichiers de grande taille, un des grands intérêts du serveur FTP est que si le transfert échoue (à cause d'une déconnexion, du plantage d'un PC ou autre ...), vous pouvez le faire reprendre exactement là où il en était. C'est bien pratique pour s'envoyer de gros fichiers en plusieurs fois si ça prend vraiment longtemps.
Un serveur FTP est aussi pratique pour pouvoir accéder à distance aux fichiers de son disque dur. Là, j'en imagine déjà qui se disent : "Mais alors tout le monde va pouvoir faire n'importe quoi avec mes fichiers ?! ...". Non, vous allez voir plus bas que l'on définit à quel(s) répertoire(s) ont accès les utilisateurs, on peut protéger l'accès au serveur par mot de passe et définir plusieurs utilisateurs avec différents droits.

Par contre, si vous voulez transmettre des petits fichiers de quelques mégas : textes, images, petites vidéos ou musiques (libre de droits, bien sûr ...), un logiciel de messagerie instantanée (MSN messenger, ...) ou joindre le fichier à un mail suffisent largement et sont plus simple à utiliser.

Si vous ne rencontrez pas trop de problèmes, l'installation et la configuration du serveur vous demanderont entre 15 et 45 minutes environ.
Si vous êtes pressé, vous pouvez sauter les différentes explications/commentaires que j'ai faits tout au long de ce tutoriel.


Voilà fini pour les explications, laissons un peu de coté la théorie ... :

Installation du programme :

Pour mettre le serveur en place, il va falloir installer un petit logiciel et le configurer. Pour le choix du logiciel, il en existe une multitude trouvable sur internet, mais le plus simple, complet et performant que j'ai trouvé est "Filezilla FTP Server", il est open source, donc gratuit et mis à jour assez régulièrement.
Ce programme est en anglais, mais pour ceux qui ne maîtrisent pas bien cette langue, ne vous inquiétez pas, pour le peu de configuration qu'il y a à faire je vais vous guider pas à pas.

Donc, téléchargez le programme en cliquant sur ce lien (env. 2,4 Mo soit moins d'une minute avec l'ADSL).

Ensuite, démarrez l'installation, puis acceptez la licence (cliquez sur "I Agree").

Laissez le type d'installation à "Standard" et la destination d'installation par défaut (donc cliquez deux fois sur "Next").

Ensuite, il va falloir régler la façon dont le serveur démarrera, là une petite explication s'impose : le logiciel est en fait composé de deux parties : le serveur et l'interface.
Le serveur seul n'est pas visible (il tourne en tache de fond) et n'a pas besoin de l'interface pour fonctionner une fois configuré.
L'interface, qui sert donc à régler et à voir ce qui se passe sur le serveur, n'a pas forcément besoin d'être tout le temps démarrée.

Donc, si vous voulez que le serveur se lance à chaque démarrage de l'ordinateur, laissez "Install as service, started with Windows (default)".
Sinon, si vous souhaitez utiliser le serveur seulement de temps en temps en le démarrant manuellement, choisissez "Install as service, started manually".
Ne touchez pas au reste puis cliquez sur "Next".

Maintenant c'est au tour de l'interface, si vous voulez qu'elle se lance à chaque démarrage de l'ordinateur, laissez "Start if user logs on, apply to all users (default)".
Sinon, si vous voulez démarrer l'interface manuellement, choisissez "Start manually".
Ensuite cliquez sur "Install", le programme s'installe rapidement en quelques secondes puis vous pouvez cliquer sur "Close".

Voilà, l'installation du programme est finie, reste maintenant à le configurer ...

Configuration du serveur :

Après l'installation, l'interface et le serveur sont démarrés, la fenêtre suivante apparaît :

Fenêtre de paramétrage de la connexion au serveur

Cochez la case "Always connect to this server" puis cliquez sur OK.
L'interface du serveur s'ouvre :

Interface du serveur

Maintenant il va falloir spécifier au serveur quel(s) dossier(s) vous voulez rendre accessible(s) aux visiteurs et avec quels droits (lecture, écriture, ...).

Donc, cliquez sur l'icône de réglage des comptes => Icône de réglage des comptes.

Puis cliquez sur "Add" pour ajouter un nouvel utilisateur.
Si vous voulez que les utilisateurs se connectent à votre serveur sans nom ni mot de passe, il faut créer un compte anonyme, pour cela tapez "anonymous" (sans les guillemets) comme nom puis cliquez sur OK.
Par contre si vous voulez limiter l'accès à certaines personnes, il vous suffit de préciser un nom d'utilisateur et de cliquer sur OK.
Si vous le voulez, vous pouvez protéger cet accès par mot de passe, il faut alors cocher la case qui se trouve devant "Password" et rentrer un mot de passe.
Vous pouvez créer autant de comptes que vous le souhaitez.

Ensuite il faut configurer les comptes un par un : cliquez sur le nom d'utilisateur du compte que vous voulez configurer puis cliquez sur "Shared folders".
C'est ici que l'on va définir à quel(s) dossier(s) auront accès les utilisateurs : cliquez sur "Add" et choisissez le dossier que vous souhaitez rendre accessible.
Si vous voulez rendre accessibles plusieurs dossiers pour un seul utilisateur, par ici pour les explications.

Ensuite il va falloir définir les droits :
Quand vous ajoutez un dossier, le programme met par défaut les droits de lecture pour les dossiers et les fichiers, ce qui suffira dans la majorité des cas.
Pour que les utilisateurs puissent aussi envoyer des fichiers et reprendre les envois en cas de coupure, cochez "Write" et "Append" en plus de ceux qui y sont déjà.
Si vous voulez qu'ils puissent créer des dossiers, cocher "Create" en plus.
Et enfin, si vous voulez qu'ils aient le droit de supprimer les fichiers et les dossiers, cochez les deux "Delete" (les suppressions sont définitives, elles ne passent pas par la corbeille, donc faites attention !).

Une fois les utilisateurs et leurs droits créés, cliquez sur OK pour valider les changements.

À ce stade là de la configuration, si votre connexion ne passe pas par un routeur (connexion partagée entre plusieurs ordinateurs) et si vous n'avez pas de pare-feu qui bloque les connexions entrantes, le serveur est fonctionnel, vous pouvez directement passer au test du serveur, mais dans la majorité des cas un pare-feu bloque la connexion ...

Donc, si vous ne savez pas si vous avez un pare-feu actif et que vous avez Windows XP, vous avez sûrement celui actif par défaut qui est démarré, dans ce cas : par ici pour le configurer.

Sinon, si vous savez quel est votre pare-feu, il faut le configurer pour qu'il laisse ouverts les ports TCP 20 et 21.
Si vous ne savez pas comment faire, trouvez de l'aide sur le forum du site.
PS : pour certains pare-feu, il n'y a besoin d'aucune configuration, il suffit juste d'autoriser le programme à accéder à internet (c'est le cas de ZoneAlarm ou de Kaspersky Anti-Hacker).

Ensuite, il ne faut pas oublier qu'actuellement, de plus en plus de fournisseurs d'accès proposent des pare-feu pour votre ligne, mais qui sont installés sur leurs serveurs, donc si on n'y fait pas attention, on peut vite les oublier, et tant qu'il ne sera pas configuré ou désactivé, le serveur ne marchera pas.
Donc, si vous savez que vous ne disposez pas de ce service, sautez ce paragraphe, si vous doutez ou si vous ne savez pas, je vous propose de continuer le tutoriel, et à la fin, si jamais le serveur ne marche pas, vous pouvez vous renseigner directement en appelant votre fournisseur d'accès, ou en demandant de l'aide sur le forum du site.
Bien sûr, si vous savez que le pare-feu de votre fournisseur d'accès est actif sur votre ligne, il faut soit le configurer, soit le désactiver. Si vous n'y arrivez pas, vous pouvez demander de l'aide sur le forum du site.

Enfin, pour le routeur :

Test du serveur

Après avoir installé et configuré le serveur, il va falloir le tester, parce que l'on n'est pas à l'abri d'un oubli ou d'une erreur.
Je vous propose cinq tests. Je les ai classées par ordre de pertinence et de difficulté d'application, donc commencez par le premier, et si il ne vous va pas pour une raison quelconque, essayez les autres dans l'ordre.

Pendant ces tests, je vous donne à plusieurs reprises votre adresse IP (en orange), je voulais vous préciser au passage qu'elle change toutes les 24 heures pour certaines connexions, donc ne la copiez pas dans un coin en pensant que vous pouvez toujours vous en servir plus tard, ça risque de ne pas marcher. Mais ne vous inquiétez pas, je vais vous expliquer comment remédier à ça dans la conclusion, ne nous égarons pas, testons votre serveur :


1) Test à l'aide d'un client FTP en ligne :

Dans un premier temps, allez ici : www.net2ftp.com.

Dans les deux cas, cliquez sur "Soumettre", si le contenu du répertoire que vous avez rendu disponible est affiché, c'est déjà un bon début, si en essayant plusieurs fois ça ne marche toujours pas : par ici.
Ensuite, pour tester que tout fonctionne correctement, vous allez essayer de télécharger un fichier, choisissez-en un petit de préférence, puis cliquez simplement dessus, normalement le téléchargement démarre.
Si tout marche comme la théorie, je vous conseille de faire un tour à la conclusion.
Si ça ne fonctionne pas, venez par ici.


2) Vous pouvez demander à un ami de vous l'essayer :

Donnez-lui l'adresse suivante : ftp://3.19.31.73 (pour un accès anonyme) ou ftp://nom:passe@3.19.31.73 (pour un accès protégé), vous devez donc accorder nom et passe pour qu'ils correspondent à ceux de votre compte.

Ensuite, demandez-lui de télécharger un fichier, là plusieurs possibilités :


3) Vous pouvez le tester directement à partir de votre PC :

Ce test ne vous permet pas de vérifier si votre serveur est accessible depuis l'extérieur, car il ne teste pas si les réglages du routeur ou du pare-feu sont bons, par contre, il vous permet de vérifier si le serveur ainsi que les différents comptes sont bien configurés.

Pour ce test, il vous suffit juste de cliquer sur ce lien : ftp://localhost

Si vous voyez le contenu du ou des dossiers que vous voulez partager, votre serveur est bien configuré, il vous reste à valider la configuration du reste (routeur et/ou pare-feu) à l'aide d'un des autres tests.
Si vous n'arrivez pas à accéder à quoi que ce soit, retournez à la configuration du serveur.


4) Vous pouvez utiliser le test de la société Gene6 :

Rendez-vous sur cette page.
Remplissez le champ "IP/Domaine" avec votre adresse IP (3.19.31.73).
Si l'accès à votre serveur n'est pas anonyme, précisez le nom du compte et éventuellement le mot de passe.
Cliquez sur "Test du serveur" puis patientez un court instant, le résultat s'affiche juste dessous.
Si vous obtenez "FTP response reading failed" : venez par ici.
Sinon, si vous obtenez quelque chose qui ressemble à l'image qui est juste en dessous, votre serveur est joignable, c'est un bon début mais ce n'est pas tout (votre serveur est joignable, mais le transfert de fichier ne marche pas forcément), pour être sur que votre serveur est 100% fonctionnel, il faut faire le test qui suit ou un des tests précédents.

Résultat d'un test positif


5) Vous pouvez passer par un serveur proxy (serveur qui va chercher pour vous les pages web et vous les envoie) :

Ce test est plus complexe à mettre en oeuvre que les autres, et en plus ce n'est pas toujours évident de trouver une adresse de proxy valide, donc préférez les quatre tests précédents, mais si jamais ils ne vous conviennent pas, en voilà un dernier.

PS : N'oubliez pas de remettre la configuration de votre navigateur comme elle était avant parce qu'un serveur proxy peut ralentir considérablement votre navigation.


L'explication des tests que je vous fais au-dessus n'est pas forcément parfaite, normalement ça ne devrait pas arriver, mais vous pouvez tomber sur d'autres problèmes ou d'autres messages d'erreur, si c'est le cas, exposez votre problème sur le forum.
Voilà, fini pour les tests, si ça a marché pour vous, tant mieux, vous pouvez passer survoler vite fait la conclusion, sinon, si ça ne marche pas, essayez la suite :

Interprétation des erreurs :

Les deux problèmes les plus souvent rencontrés sont :

Erreur n° 1 : "J'ai beau essayer de faire tous les tests que je veux, rien ne bouge dans l'interface du serveur"
=> votre pare-feu ou votre routeur n'est pas ou mal réglé ...
Solutions :

Erreur n° 2 : "Les utilisateurs à qui je donne mon adresse arrivent à voir la liste des fichiers, mais ne peuvent pas les télécharger"
=> votre pare-feu ou votre routeur bloque les connexions entrantes pour le mode passif ...

Solutions 1 :

Solution 2 :

Le problème peut venir du fait que vous avez redirigé seulement les ports 20 et 21 de votre routeur vers votre PC, dans ce cas :

Conclusion :

Adresse fixe : pour ne pas avoir à redonner votre adresse IP à chaque fois que vous voulez envoyer un fichier (parce qu'elle peut être amenée à changer) si vous utilisez souvent votre serveur FTP ou si vous voulez l'utiliser à distance, il est rentable de configurer votre PC pour qu'il soit joignable tout le temps par la même adresse, pour faire ça, j'ai fait un tutoriel : ICI.

Vitesses d'envoi : l'envoi d'un fichier, même gros peut être relativement rapide, par exemple, si vous êtes chez Free avec une ligne dégroupée ou avec l'ADSL max, l'envoi d'un fichier de 700 Mo prend seulement deux heures ...

Pour pouvoir reprendre les transferts : la reprise de téléchargement n'est pas supportée par Internet Explorer, donc quand vous envoyez de gros fichiers, mieux vaut préciser à la personne à laquelle vous les envoyez qu'il est préférable qu'elle prenne un gestionnaire de téléchargement (par ex : Netants ou TrueDownloader).

Ne dérivez pas ... : je rappelle juste pour ceux qui auraient hiberné quelques années que le partage de fichiers non libre de droits (films, musiques, jeux, ...) est théoriquement interdit, si vous voulez en échangez, faites-le discrètement, ne faites pas comme certains qui dans leur élan de générosité s'empressent de le dire sur n'importe quel forum, ça pourrait vous amener des problèmes ...

Divers : si vous faites un compte utilisateur sans mot de passe et que votre client FTP veut quand même que vous en précisiez un, mettez n'importe quoi, ça sera accepté.

Changement du port 21 : (à ne prendre en compte que si votre serveur est très souvent en ligne) le port n° 21 est le port utilisé par défaut pour le protocole FTP, donc certains petits malins s'amusent à "scanner" au hasard l'internet, et peuvent donc tomber sur votre PC, normalement cela ne pose pas de problèmes, mais ils peuvent trouver votre adresse IP et se connecter à votre serveur, donc si vous avez laissé un compte anonyme, ce n'est pas forcément souhaitable. Pour remédier à ce "problème", vous pouvez changer le numéro du port, mais ensuite il faudra tout le temps le préciser ... si vous voulez le faire : par ici.

Syntaxe : pour télécharger un fichier sur votre serveur, les utilisateurs n'ont pas forcément besoin d'un logiciel spécifique, ils peuvent le faire avec un navigateur (Internet Explorer, Firefox, ...), la syntaxe à utiliser est : ftp://[nomducompte]:[passe]@[adresse]:[port]/
Par exemple, si le compte est "moi", le mot de passe "passe" et l'adresse "maison.truc" (préciser le port est facultatif, voir juste au-dessus pour les explications), l'adresse à communiquer sera : ftp://moi:passe@maison.truc/

Pour éteindre le serveur : pour éteindre complètement le serveur (et pas seulement l'interface), vous devez aller dans le menu démarrer et cliquer sur "Stop Filezilla Server", suivant les options que vous avez mises à l'installation, le serveur peut se relancer à chaque démarrage du PC.

Le mot de la fin ... :

Si votre serveur ne marche toujours pas à la fin de ce tutoriel, venez exposer simplement et clairement ce qui marche et ce qui ne marche pas sur le forum du site.

Si vous trouvez qu'un passage de ce tutoriel n'est pas assez clair, ou pour toute autre remarque / question / critique, vous pouvez me contacter.

Enfin, si vous avez trouvé ce tutoriel utile, vous pouvez me laisser un petit message de remerciement sur mon livre d'or.

Webmasters : ne copiez/collez pas ce tutoriel sur votre site ou votre forum, faite juste un lien vers cette page svp. Merci.
Dernière mise à jour : le 19 mars 2006