Utilisation d'un serveur SMB sans accès root

18

Je cherche un moyen pour mon HTC Hero (Android 2.1) afin de pouvoir partager le contenu de ma carte SD et de la mémoire de mon téléphone sur le réseau WiFi comme un partage de fichiers Windows normal. J'aimerais en avoir un qui ne me demande pas de rooter mon téléphone, et je suis prêt à payer pour la bonne application afin qu'elle ne soit pas gratuite.

Je pense utiliser le serveur SMB et tout ce que j'ai trouvé jusqu'à présent est:

  1. SambaAndroid qui nécessite un accès root.
  2. androidsmb qui est une "implémentation Java du serveur de fichiers réseau et de partage d'imprimante SMB / CIFS pour les appareils Android" hébergée sur Google Code qui n'a aucune documentation et n'a publié aucun fichier.

Est-il même techniquement possible de développer un serveur SMB sur Android qui peut être installé sans accès root?

journée
la source
J'ai utilisé Wifi Explorer( appbrain.com/app/wifi-file-explorer/… ) plusieurs fois et cela fonctionne très bien, aucune racine n'est requise. Ce n'est cependant pas SMB (et ce n'est probablement pas FTP non plus).
Joe Casadonte

Réponses:

12

Comme votre question d'origine n'est toujours pas répondue et je me suis posé la même question, voici la réponse.

Réponse courte: Non, sans root, il n'est pas possible d'exécuter un serveur SMB en utilisant les ports par défaut afin qu'il soit trouvé par les PC Windows.

Réponse longue: SMB s'exécute sur les ports 137-139 (UDP et TCP) à l'aide de NetBIOS ou sur les systèmes plus récents (à partir de Windows Vista) directement sur le port TCP 445 où, dans ce dernier cas, les noms d'ordinateur sont résolus par le LLMNR (Link-local Multicast Protocole de résolution de noms) qui s'exécute sur le port UDP 5355. Pourquoi est-ce important? Les applications qui ne s'exécutent pas en tant que root ne peuvent pas se lier à des ports non privilégiés (<1024). Il est possible d'utiliser des ports alternatifs pour SMB mais Windows est câblé pour écouter uniquement ceux par défaut. Donc je suppose que si vous utilisez Linux ou un client SMB séparé pour Windows qui permet de se connecter à un serveur avec un numéro de port personnalisé, c'est probablement possible. Mais ce n'est pas vraiment une façon simple.

letmaik
la source
Grande réponse réelle après tout ce temps. Merci. Maintenant, si seulement je pouvais me rappeler pourquoi j'avais besoin de ça ...;)
Jour
3
Eh bien, je le voulais parce que je suis trop paresseux pour brancher l'USB pour accéder à la carte SD: D
letmaik
Je me demande si Windows peut faire face à \\your.ip:port...
Tobias Kienzler
10

Bien qu'il ne soit pas possible d' exécuter un serveur SMB sans root ou d' utiliser la redirection de port , il est possible d'exécuter un serveur WebDAV sans root pour un effet similaire.

Configuration d'un serveur Android WebDAV

Sur mon Nexus 7 d'origine, j'ai installé WebDAV Server , l'ai ouvert, cliqué sur le bouton Démarrer et j'ai immédiatement pu voir mon /storage/sdcarddossier dans mon navigateur Web à l'URL affichée par l'application, c'est-à-direhttp://192.168.x.y:8080

Notez qu'avec WebDAV, vous avez également la possibilité de sélectionner Root (/) ou DCIM ainsi que SdCard comme racine WebDAV .

Utilisation du serveur WebDAV via l'Explorateur Windows

J'ai ensuite mappé en http://192.168.x.y:8080tant que lecteur réseau dans l'Explorateur Windows et j'ai pu accéder au contenu de mon lecteur de stockage, comme si j'étais connecté via MTP, mais via une lettre de lecteur.

Malheureusement, cette solution est incroyablement lente.

Chaque changement de répertoire prend entre 6 et 20 secondes, tout comme l'accès à la plupart des fichiers. Une fois qu'un fichier est accédé, il est transféré à une vitesse raisonnable (la copie d'un seul fichier de 42 Mo dans l'Explorateur Windows a pris environ 60 secondes, donc 700 Ko / s).

Ainsi WebDAV via l'Explorateur Windows est ok pour télécharger quelques gros fichiers dont vous connaissez l'emplacement, mais parcourir ou synchroniser un appareil entier de cette façon n'est pas rapide. J'ai synchronisé 1,75 Go de données dans environ 6000 fichiers et 400 répertoires et cela a pris 10 heures, soit environ 50 Ko / s ou 10 fichiers / dirs par minute en moyenne.

Utilisation du serveur WebDAV via la ligne de commande Windows

Même à partir de la ligne de commande, chaque liste de répertoires prend 5-6 secondes, comme tout accès aux fichiers. La copie du même fichier de 42 Mo à partir de la ligne de commande a pris environ 20 secondes, soit environ 2,1 Mo / s.

Utilisation du serveur WebDAV via un navigateur Web

L'option la plus rapide pour WebDAV consiste à utiliser votre navigateur Web, directement via l'URL indiquée. Changer de répertoire prend rarement plus d'une seconde et le téléchargement du même fichier de 42 Mo à partir du navigateur Web prend environ 12 secondes, soit environ 3,6 Mo / s.

L'inconvénient de l'utilisation du navigateur Web est qu'il n'affiche que la date (pas de taille ou de type) et ne fait aucune distinction entre les fichiers et les répertoires, donc si un fichier n'a pas d'extension (ou un répertoire en a), cela peut ne pas être évident. si vous cliquez sur un lien, vous accédez à une autre page Web (pour un répertoire) ou lancez un téléchargement (pour un fichier).

Avertissements

  • Par défaut, Windows limite la taille des téléchargements WebDAV à 50000000 octets (47,6 Mo), bien que cela puisse être modifié via un hack de registre ( FileSizeLimitInBytesin HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters) si vous savez ce que vous faites.

  • L'accès WebDAV n'est pas sécurisé . Même si vous définissez un mot de passe sur le partage WebDAV, la connexion ne l'est toujours httppas https, elle n'est donc pas chiffrée. N'utilisez WebDAV que sur un réseau wifi sécurisé et n'activez certainement pas le serveur WebDAV lorsque vous êtes dans un cybercafé ou un autre wifi non sécurisé.

Mark Booth
la source
Cette méthode est assez rapide sur mon appareil. Je vous remercie!
Cluster
Testé sur Samsung S10 + Windows 8.0. Fonctionne bien.
Brethlosze
5

Le problème n'est pas le serveur samba, mais le fait que Windows ne peut accéder à un partage samba que sur le port 445, et sur un android non rooté, une application normale ne peut pas écouter sur le port 445.

Mais vous pouvez surmonter cela avec un mappage de port TCP:

  1. Installez un serveur samba sur votre Android et faites-le écouter sur un port comme 7777
  2. Installez un logiciel de transfert de port TCP quelque part (je l'ai installé sur un virtualPC)
  3. Configurez le logiciel de cartographie des ports pour écouter les connexions sur le port 445 et transférez les connexions vers votre Android sur le port 7777
  4. Vous pouvez maintenant accéder au dossier partagé sur ce virtualPC, et vous obtiendrez les données du serveur samba installé sur android (via le portmapping)

J'ai décrit toutes les étapes en détail ici sur mon blog http://techforpassion.blogspot.it/2013/12/android-how-to-share-folder-over-wifi.html

J'ai essayé différents serveurs samba, et la seule application gratuite qui fonctionne dans cette configuration s'appelle Samba Server

Max
la source
Proposition intéressante, mais ne pouvez-vous pas saisir quelque chose comme \\androids.ip:7777dans la barre d'adresse de l'explorateur?
Tobias Kienzler
1
@tobias kienzler À ma connaissance, cela ne fonctionnera pas
Max
2

Alternativement, vous pouvez exécuter un serveur ftp sur votre téléphone pour accéder au contenu de votre carte SD. Découvrez SwiFTP .

Bryan Denny
la source
Je seconde SwiFTP. Vous ne pourrez pas retirer de fichiers du téléphone en l'utilisant sans être root, mais cela devrait fonctionner correctement pour la carte SD.
Webs
2

J'ai actuellement terminé une application ( pour les appareils non rootés ) pour partager des fichiers sur le réseau local. Mes leçons apprises:

  • Il est possible d'exécuter un serveur SMB sur Android sans accès root (sur un port non privilégié). Mac OS X s'y connecte sans aucun problème (si vous diffusez votre IP et votre port via Bonjour). Mais Windows ne le fait pas. Comme déjà dit par d'autres utilisateurs, Windows utilise des ports privilégiés "codés en dur" pour l'accès SMB. Le seul moyen que j'ai trouvé pour me connecter à Windows est de créer une carte réseau en boucle comme expliqué ici (pas le même but, mais l'idée). Enfin, je pense que la façon la plus conviviale d'utiliser WebDAV sous Windows . Même si Windows ne le fait pas facilement, car vous devez saisir votre adresse IP à la main et je n'ai pas trouvé un moyen de le découvrir (veuillez me laisser un message, si vous en connaissez un).
  • Dans le monde Mac OS X, le protocole SMB est clairement gagnant . Votre partage sera découvert automatiquement par Bonjour et apparaît comme par magie dans le Finder. Il est étrange que les partages WebDAV et FTP soient ignorés (non montés automatiquement par le Finder), bien qu'ils soient pris en charge par Bonjour. Les clients tiers (par exemple Cyberduck) n'ont aucun problème avec la découverte automatique de ces partages.
artkoenig
la source
1

Je peux me méprendre, mais il semble que vous ayez besoin d'un client SMB, pas d'un serveur. De plus, vous n'avez pas besoin d'un accès root. Pour utiliser SMB pour transférer des fichiers vers votre ordinateur, vous pouvez utiliser ASTRO File Manager avec l' addon SMB , ou il y a File Expert qui est également gratuit.

Vous pouvez également utiliser WebDAV au lieu de SMB avec une application comme WebSharing .

Dans le passé, j'utilisais une application qui, avec un logiciel client sur mon ordinateur, me permettait de transférer des fichiers via l'explorateur de fichiers de n'importe où sur le Web. Ce n'était pas une application VNC complète. J'ai un nouveau téléphone et maintenant, pour la vie de moi, je ne trouve pas l'application.

Mat
la source
Salut merci pour la réponse, je voulais vraiment un serveur sur le téléphone pour que mon PC (Ubuntu) puisse y pousser de nouveaux fichiers quand je rentre à la maison sans que je doive même sortir le téléphone de ma poche. Je préfère ne pas avoir besoin de logiciels supplémentaires sur PC, mais bien sûr, un serveur FTP ou WebDAV sur le téléphone répondrait également à cette exigence, il semble donc que File Expert fera le travail. J'installe maintenant fera un rapport merci
Jour
Hmmm, le serveur FTP ne semble pas fonctionner - l'assistant Ubuntu "Se connecter au serveur" dit "fin de flux inattendue". Je dois aller travailler, je réessaierai plus tard ta.
Jour
Non ça marche ... ma faute pour me précipiter. Cela devrait bien faire le travail merci.
Jour