Verwenden eines SMB-Servers ohne Root-Zugriff


18

Ich suche nach einer Möglichkeit für mein HTC Hero (Android 2.1), um den Inhalt meiner SD-Karte und des Telefonspeichers über das WiFi-Netzwerk wie eine normale Windows-Dateifreigabe freizugeben. Ich möchte eine App, bei der ich mein Handy nicht rooten muss, und die bereit ist, für die richtige App zu bezahlen, damit sie nicht kostenlos sein muss.

Ich denke über die Verwendung von SMB-Server nach und alles, was ich bisher gefunden habe, sind:

  1. SambaAndroid, für das Root-Zugriff erforderlich ist.
  2. androidsmb ist eine "Java-Implementierung des SMB / CIFS-Netzwerk-Datei- und Druckerfreigabeservers für Android-Geräte", die auf Google Code gehostet wird und keine Dokumentation enthält und keine Dateien veröffentlicht hat.

Ist es technisch überhaupt möglich, einen SMB-Server für Android zu entwickeln, der ohne Root-Zugriff installiert werden kann?


Ich habe Wifi Explorer( appbrain.com/app/wifi-file-explorer/… ) ein paar Mal verwendet und es funktioniert großartig, kein root erforderlich. Es ist jedoch kein SMB (und wahrscheinlich auch kein FTP).
Joe Casadonte

Antworten:


12

Da Ihre ursprüngliche Frage immer noch nicht beantwortet ist und ich mich auch gefragt habe, ist hier die Antwort.

Kurze Antwort: Nein, ohne root ist es nicht möglich, einen SMB-Server über die Standardports zu betreiben, damit er von Windows-PCs gefunden wird.

Lange Antwort: SMB läuft entweder auf den Ports 137-139 (UDP und TCP) mit NetBIOS oder auf neueren Systemen (ab Windows Vista) direkt auf dem TCP-Port 445, wobei im letzteren Fall die Computernamen vom LLMNR (Link-Local Multicast) aufgelöst werden Namensauflösung) Protokoll, das auf UDP-Port 5355 ausgeführt wird. Warum ist das wichtig? Apps, die nicht als Root ausgeführt werden, können nicht an nicht privilegierte Ports gebunden werden (<1024). Es ist möglich, alternative Ports für SMB zu verwenden, aber Windows ist fest verdrahtet, um nur die Standardports abzuhören. Wenn Sie Linux oder einen separaten SMB-Client für Windows verwenden, der die Verbindung zu einem Server mit einer benutzerdefinierten Portnummer ermöglicht, ist dies wahrscheinlich möglich. Aber es ist kein direkter Weg.


Großartig, nach all der Zeit eine echte Antwort. Vielen Dank. Nun , wenn ich nur könnte daran erinnern , warum ich dies nötig ...;)
Tag

3
Nun, ich wollte es, weil ich zu faul bin, den USB-Stick anzuschließen, um auf die SD-Karte zuzugreifen: D
letmaik

Ich frage mich, ob Windows mit \\your.ip:port... fertig wird
Tobias Kienzler

10

Während es möglicherweise nicht möglich ist, einen SMB-Server ohne Root auszuführen oder die Portweiterleitung zu verwenden , ist es für einen ähnlichen Effekt möglich, einen WebDAV-Server ohne Root auszuführen.

Einrichten eines Android WebDAV-Servers

Auf meinem Standard-Nexus 7 habe ich den WebDAV-Server installiert , geöffnet, auf die Startschaltfläche geklickt und konnte meinen /storage/sdcardOrdner sofort in meinem Webbrowser unter der von der Anwendung angezeigten URL anzeigen, d. Hhttp://192.168.x.y:8080

Beachten Sie, dass Sie bei WebDAV auch die Option haben, Root (/) oder DCIM sowie SdCard als WebDAV- Root auszuwählen .

Verwenden des WebDAV-Servers über Windows Explorer

Ich habe dann http://192.168.x.y:8080im Windows Explorer als Netzlaufwerk gemappt und konnte auf den Inhalt meines Speicherlaufwerks zugreifen, als ob ich über MTP verbunden wäre, aber über einen Laufwerksbuchstaben.

Leider ist diese Lösung unglaublich langsam.

Jeder Verzeichniswechsel dauert zwischen 6 und 20 Sekunden, ebenso wie der Zugriff auf die meisten Dateien. Sobald auf eine Datei zugegriffen wird, wird sie mit einer angemessenen Geschwindigkeit übertragen (das Kopieren einer einzelnen 42-MB-Datei in Windows Explorer dauerte ungefähr 60 Sekunden, also 700 KB / s).

Daher ist WebDAV über den Windows Explorer in der Lage, einige große Dateien herunterzuladen, deren Speicherort Sie kennen. Das Durchsuchen oder Synchronisieren eines gesamten Geräts auf diese Weise ist jedoch nicht schnell. Ich habe 1,75 GB Daten in ca. 6000 Dateien und 400 Verzeichnissen synchronisiert und es hat 10 Stunden gedauert, dh durchschnittlich ca. 50 KB / s oder 10 Dateien / Verzeichnisse pro Minute.

Verwenden des WebDAV-Servers über die Windows-Befehlszeile

Sogar von der Befehlszeile aus dauert jede Verzeichnisliste wie jeder Dateizugriff 5 bis 6 Sekunden. Das Kopieren derselben 42-MB-Datei von der Befehlszeile dauerte ungefähr 20 Sekunden, also ungefähr 2,1 MB / s.

Verwenden des WebDAV-Servers über einen Webbrowser

Die schnellste Möglichkeit für WebDAV besteht darin, Ihren Webbrowser direkt über die angegebene URL zu verwenden. Das Wechseln des Verzeichnisses dauert selten länger als eine Sekunde, und das Herunterladen derselben 42-MB-Datei aus dem Webbrowser dauerte ungefähr 12 Sekunden, also ungefähr 3,6 MB / s.

Der Nachteil der Verwendung des Webbrowsers besteht darin, dass nur das Datum angezeigt wird (keine Größe oder Typ) und keine Unterscheidung zwischen Dateien und Verzeichnissen erfolgt. Wenn eine Datei also keine Erweiterung hat (oder ein Verzeichnis dies tut), ist dies möglicherweise nicht offensichtlich Wenn Sie auf einen Link klicken, gelangen Sie zu einer anderen Webseite (für ein Verzeichnis) oder Sie starten einen Download (für eine Datei).

Vorbehalte

  • Standardmäßig begrenzt Windows die Größe von WebDAV-Downloads auf 50000000 Byte (47,6 MB). Dies kann jedoch durch einen Registrierungshack ( FileSizeLimitInBytesin HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters) geändert werden, wenn Sie wissen, was Sie tun.

  • Der WebDAV-Zugriff ist nicht sicher . Auch wenn Sie ein Kennwort für die WebDAV-Freigabe festlegen, ist die Verbindung immer noch httpnicht hergestellt httpsund daher nicht verschlüsselt. Verwenden Sie WebDAV nur in einem sicheren WLAN-Netzwerk und aktivieren Sie den WebDAV-Server auf keinen Fall, während Sie sich in einem Internetcafé oder einem anderen ungesicherten WLAN befinden.


Diese Methode ist auf meinem Gerät ziemlich schnell. Vielen Dank!
Cluster

Getestet auf Samsung S10 + Windows 8.0. Funktioniert gut.
Brethlosze

5

Das Problem ist nicht der Samba-Server, sondern die Tatsache, dass Windows nur über Port 445 auf eine Samba-Freigabe zugreifen kann und eine normale App auf einem nicht verwurzelten Android-Gerät Port 445 nicht überwachen kann.

Aber Sie können dies mit einigem TCP-Port-Mapping überwinden:

  1. Installieren Sie einen Samba-Server auf Ihrem Android und lassen Sie ihn auf einem Port wie 7777 lauschen
  2. Installieren Sie irgendwo eine TCP-Port-Weiterleitungssoftware (ich habe sie auf einem virtuellen PC installiert)
  3. Richten Sie die Portmapping-Software so ein, dass sie auf Verbindungen an Port 445 wartet, und leiten Sie die Verbindungen an Ihren Android an Port 7777 weiter
  4. Jetzt können Sie auf den freigegebenen Ordner auf diesem virtuellen PC zugreifen und die Daten vom auf Android installierten Samba-Server abrufen (über das Portmapping).

Ich habe alle Schritte hier in meinem Blog http://techforpassion.blogspot.it/2013/12/android-how-to-share-folder-over-wifi.html ausführlich beschrieben

Ich habe verschiedene Samba-Server ausprobiert und die einzige kostenlose App, die in dieser Konfiguration funktioniert, heißt Samba-Server


Interessanter Vorschlag, aber können Sie so etwas nicht \\androids.ip:7777in die Explorer-Adressleiste eingeben ?
Tobias Kienzler

1
@ tobias kienzler Meines Wissens funktioniert das nicht
Max

2

Alternativ können Sie einen FTP-Server auf Ihrem Telefon ausführen, um auf den Inhalt Ihrer SD-Karte zuzugreifen. Testen Sie SwiFTP .


Ich zweiter SwiFTP. Sie können damit keine Dateien vom Telefon entfernen, ohne root zu sein, aber es sollte für die SD-Karte gut funktionieren.
Webs

2

Ich habe derzeit eine App ( für nicht gerootete Geräte ) zum Teilen von Dateien im lokalen Netzwerk fertiggestellt. Meine Lektionen gelernt:

  • Es ist möglich, einen SMB-Server unter Android ohne Root-Zugriff (über einen nicht privilegierten Port) auszuführen. Mac OS X stellt problemlos eine Verbindung her (wenn Sie Ihre IP-Adresse und Ihren Port über Bonjour übertragen). Aber Windows nicht. Wie bereits von anderen Benutzern erwähnt, verwendet Windows für den SMB-Zugriff "fest codierte" privilegierte Ports. Die einzige Möglichkeit, eine Verbindung mit Windows herzustellen, ist das Erstellen eines Loopback-Netzwerkadapters, wie hier erläutert (nicht derselbe Zweck, aber die Idee). Schließlich denke ich, dass der benutzerfreundlichste Weg die Verwendung von WebDAV unter Windows ist . Auch wenn das Windows es nicht benutzerfreundlich macht, weil Sie Ihre IP von Hand eingeben müssen und ich keinen Weg gefunden habe, wie es entdeckt werden könnte (schreiben Sie mir bitte eine Zeile, wenn Sie eine kennen).
  • In der Mac OS X-Welt ist das SMB-Protokoll ein klarer Gewinner . Ihre Freigabe wird von Bonjour automatisch erkannt und auf magische Weise im Finder angezeigt. Es ist seltsam, dass WebDAV- und FTP-Freigaben ignoriert werden (von Finder nicht automatisch bereitgestellt), obwohl sie von Bonjour unterstützt werden. Drittanbieter-Clients (z. B. Cyberduck) haben keine Probleme mit der automatischen Erkennung dieser Freigaben.

1

Ich mag missverstehen, aber es hört sich so an, als bräuchten Sie einen SMB-Client, keinen Server. Außerdem benötigen Sie keinen Root-Zugriff. Um SMB zum Übertragen von Dateien auf Ihren Computer zu verwenden, können Sie ASTRO File Manager mit dem SMB-Addon verwenden , oder es gibt File Expert, das ebenfalls kostenlos ist.

Sie können auch WebDAV anstelle von SMB mit einer App wie WebSharing verwenden .

In der Vergangenheit habe ich eine App verwendet, mit der ich mit Client-Software auf meinem Computer Dateien über den Datei-Explorer von überall aus über das Internet übertragen konnte. Es war keine vollständige VNC-App. Ich habe ein neues Handy bekommen und jetzt, für mein ganzes Leben, kann ich die App nicht finden.


Hallo, danke für die Antwort, ich wollte unbedingt einen Server am Telefon, damit mein (Ubuntu) PC neue Dateien darauf ablegen kann, wenn ich nach Hause komme, ohne dass ich das Telefon aus der Tasche nehmen muss. Bevorzugen Sie es, keine zusätzliche Software auf dem PC zu benötigen, aber ein FTP- oder WebDAV-Server auf dem Telefon würde diese Anforderung natürlich auch erfüllen, sodass der Dateiexperte anscheinend die Aufgabe übernimmt. Ich bin der Installation wird nun wieder dank berichten
Day

Hmmm, der FTP-Server scheint nicht zu funktionieren - der Ubuntu-Assistent "Mit Server verbinden" meldet "Unerwartetes Ende des Streams". Müssen Sie zur Arbeit gehen, versuchen Sie es später erneut ta.
Tag

Nein, es funktioniert ... meine Schuld für die Eile. Das sollte die Arbeit gut machen, danke.
Tag
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.