Partage de fichiers entre des machines Android et avec GNU/Linux sur un réseau domestique

Contexte

Cette page devrait intéresser les utilisateurs cherchant à échanger des fichiers entre des machines sous Android, entre elles ainsi qu'avec un ordinateur sous GNU/Linux, sans les faire transiter par internet mais en utilisant uniquement le réseau local auquel ces appareils sont supposés connectés. Elle raisonne sur un exemple mais est facile à transposer.

Pour la démonstration sont utilisés : un portable sous Ubuntu Lucid Lynx avec Gnome, une tablette Nexus 7 sous Android 4.4.2 et un mobile Sony Xperia SP sous Android 4.1.2, tous connectés par wifi à un réseau domestique animé par une Livebox.

Pour limiter l'exposition des données à d'éventuels visiteurs curieux, le partage sera cantonné à un seul dossier réservé à cet usage et créé sur chaque machine, par exemple sous le nom "Public".

Transferts entre Ubuntu et Android

C'est la manipulation la plus facile... Si vous avez un réseau avec des protocoles et des machines Windows, le logiciel Samba est déjà installé. Sinon, en passant par Synaptic, il est facile à installer, avec une trentaine d'autres paquets dont il dépend. Il est commode d'installer également nautilus-share, qui permet de gérer facilement les partages avec le gestionnaire de fichiers nautilus. Dans un réseau mixte avec Windows, Samba permet le partage de fichiers entre des ordinateur sous GNU/Linux et sous Windows. Le partage de fichiers avec Samba a l'avantage d'être utilisé sur tous les systèmes car ce protocole d'origine Microsoft a été porté sous GNU/Linux assez largement.

Alors, si ce n'est pas déjà fait, il suffit de faire un clic droit sur le dossier "Public" dans nautilus et, dans le menu contextuel, de choisir "Options de partage", pour faire apparaître la boîte de dialogue "Partage de dossier".
boite de dialogue partage de dossier

Il faut y cocher "Partager ce dossier" et, éventuellement, selon la maîtrise que l'on souhaite avoir de son système, "Accès d'évaluation (pour les personnes sans compte utilisateur)" et "Permettre aux autres utilisateurs de modifier ce dossier" (même si l'on est seul à utiliser les machines, les bogues qui peuvent traîner dans les gestionnaires de systèmes de fichiers n'incitent pas à modifier les dossiers sur un système distant sans réfléchir). Du côté d'Ubuntu, c'est tout.

Sur une machine cliente sous Android, le plus simple est d'installer l'application gratuite "ES Explorateur de fichiers" qui est facile à utiliser et performante et intègre notamment un client smb. Autrement dit, elle peut consulter le dossier partagé sur la machine Ubuntu et le modifier au besoin (prudence !), si cela a été autorisé à l'étape précédente. Dans cette application, on peut par exemple ouvrir un volet "Local" de travail et un volet LAN pour accéder par le réseau à la machine distante, qui se comporte comme un serveur de fichiers.
application android ES Explorateur de fichiers ES Explorateur en train de chercher les partages réseau
Ci-dessus, la capture d'écran de droite montre ES explorateur en pleine action, dans son volet LAN (loupe), en train de "scanner" [sic] le réseau pour mettre en évidence les partages.

Une fois le partage monté sur Android, il suffit de procéder par copier coller pour transférer des fichiers d'Ubuntu à Android et, si ce fut autorisé dans les "options de partage" d'Ubuntu, dans l'autre sens itou.

Transferts entre Android et Android

Là, c'est un peu différent... ES Explorateur de fichiers ne possède pas la fonction permettant de faire jouer à l'une des deux machines le rôle de serveur de fichiers. Par habitude, la première idée qui vient est d'installer un serveur SMB sur l'une des deux machines Android et, de fait, il existe sur le Play store une application Samba server qui fait exactement cela, en gérant les protocole smb et cifs, plus moderne. La version gratuite n'autorise à créer qu'un serveur, avec trois dossiers dessus, mais c'est suffisant pour une utilisation domestique. Elle affiche aussi un petit bandeau publicitaire dans son interface mais, étant donné qu'on y passe peu de temps, ce n'est pas gênant. Après l'installation et le lancement de l'application, il suffit de cliquer sur le bouton "Add" pour ajouter un serveur. La page qui s'ouvre comprte deux onglets. Le premier est plus haut que la fenêtre et il faut le faire défiler pour accéder à tous les paramètres : nom du serveur (à renseigner) et d'autres données avec des valeurs par défaut qu'on peut accepter ou demander à changer. Tout en bas, les voyageurs itinérants peuvent trouver avantage à restreindre le fonctionnement du serveur à leur réseau wifi personnel (pour protéger leurs données). Dans le deuxième onglet, il faut ajouter au moins un dossier qui sera offert en partage par le serveur.
Application Android Samba Server Configuration Samba Server Configuration dossiers Samba Server
Avant de quitter la configuration, noter le numéro du port choisi pour TCP/IP, 7777 sur l'exemple présenté ici, car il va falloir s'en servir.

Cela fait, appuyer sur l'icone de retour arrière et confirmer l'enregistrement de la configuration pour revenir à l'écran de pilotage du serveur. Après un clic droit sur le serveur, dans le menu contextuel qui s'ouvre, choisir Start/Stop pour faire démarrer le serveur. Lorsque l'échange de données aura pris fin, la même manipulation permettra d'arrêter le serveur.
Marche - arrêt du serveur

Le serveur étant en route, il faut passer sur la machine Android cliente, ici le mobile Xperia SP de Sony. Dans ES explorateur de fichiers, coulisser jusqu'à l'onglet LAN et y demander "Scanner". Après quelques secondes, l'application trouve le serveur puis continue pendant quelques instants à explorer le reste du réseau. A la fin de la recherche, faire un appui long sur l'icone du serveur pour le sélectionner puis, en bas de la page, appuyer sur "Editer le serveur". Dans la fenêtre qui s'ouvre, dans le champ Serveur, après l'IP du serveur, ajouter le signe deux-points puis le numéro du port relevé à l'étape précédente sur la machine "serveur", soit ici :7777 (il ne faut pas ajouter le nom du dossier puisqu'il est la racine du partage!) ; comme le dossier "Public" du serveur a été paramétré pour permettre l'accès à tous, il suffit de cocher la case "Anonyme" pour y accéder sans formalités, puis appuyer sur OK. A partir de là, un appui bref sur l'icone du serveur permet de l'ouvrir et d'accéder au dossier partagé sur le serveur pour y lire ou écrire des fichiers. Il a fallu préciser le port car ce n'est par le port par défaut.
scan du réseau par le client configuration du client utilisation du client

Et entre Android et Windows ?

C'est hors du sujet de cette page mais l'on peut noter au passage que l'application gratuite Android "Samba server" ne met pas à disposition des numéros de ports reconnus par Windows. Cependant, à partir du moment où un dossier "Public" est, sur une machine Windows allumée, déclaré comme partagé, ES Explorateur de fichiers la trouve en scannant et l'affiche dans le volet LAN. De là, il est possible d'écrire et de lire des fichiers sur la machine Windows, en fonction des options de partage qui y ont été configurées.

Quoi d'autre ?

Pour information et à toutes fins utiles, il y a une autre méthode pour effectuer des échanges sur le réseau, plus satisfaisante car faisant appel à un standard ouvert, plus souple, et en train de se généraliser : installer un serveur WebDAV ou, plus succinctement, DAV.

DAV signifie "Distributed Authoring and Versioning". Techniquement, cette technologie peut être vue comme une extension du protocole http autorisant non seulement la lecture mais aussi l'écriture de fichiers en réseau. Il est aussi possible de la décrire comme un système de fichiers adapté au travail collaboratif en réseau. Pour en savoir plus, de la lecture est disponible sur le site www.webdav.org.

Quoiqu'il en soit, sur le Play Store, il existe une petite application qui s'appelle justement WebDAV Server Ultimate. La version gratuite affiche une petite publicité (qui n'est guère gênante) et est limitée à deux serveurs et trois utilisateurs par serveur, ce qui est suffisant pour une utilisation domestique. Une fois l'application installée (ici, sur la tablette), il est facile d'ajouter sur la machine un serveur en cliquant sur le bouton "Add". Donner un nom reconnaissable au serveur, accepter le port par défaut ou en demander un autre aléatoire (get random port) mais noter le numéro de port utilisé, appuyer sur "Browse" pour parcourir les dossiers et aller sélectionner le dossier Public précédemment créé en vue du partage, accepter les autres options par défaut... En plus, il semble cependant prudent de cocher la dernière case qui empêche le serveur de fonctionner sur un autre réseau wifi. Cela fait, tapoter le serveur mis en place fait surgir le menu contextuel qui permet de lancer et d'arrêter le serveur DAV à volonté, d'un clic.
Application Android WebDAV Server Ultimate Création d'un serveur WebDAV Lancement/arrêt d'un serveur WebDAV

Ensuite, sur les machines clientes, il suffit d'utiliser un client DAV pour accéder au serveur. On ne détaillera pas plus cette solution ici.

Les deux applications serveurs citées ne nécessitent pas que l'appareil soit"rooté" mais...
ATTENTION...
ce sont de gros consommateurs de batterie car, même lorsque les serveurs sont stoppés, l'application n'est pas arrêtée et elle empêche l'appareil de se mettre totalement en veille. Ainsi, l'écran vire au noir mais, alors que l'utilisateur croit sa tablette endormie, l'application conserve le processeur en route. Par exemple, après une durée de 15h qui aurait dû, pour la plus grosse part, être passée en veille, l'auteur de cette page a pu constater que les serveurs avait consommé 90% de la batterie, loin devant l'écran (habituellement le plus gros poste).
MORALITÉ
Dès que l'on n'a plus besoin du serveur, il ne faut pas oublier de retourner dans l'application, de cliquer sur "exit" et de confirmer qu'on veut en effet arrêter tous les services. Sur la Nexus, cela suffit (le cas échéant, il est toujours possible de forcer l'arrêt). Évidemment, la consommation passée de l'application continue à apparaitre dans l'historique de la décharge de batterie mais sa valeur absolue est figée et sa part relative se met donc à décroître.


Retour à l'accueil LINUX


logo html 5 Validé avec le vérificateur expérimental du W3C