Использование SMB-сервера без доступа к корню -- wi-fi поле с участием root-access поле с участием cifs пол android Связанный проблема

Using SMB server without root access


19
vote

проблема

русский

Я ищу способ для моего HTC Hero (Android 2.1), поэтому я могу поделиться содержимым моей карты SD и памятью телефона по сети WiFi, как обычный файл Windows. Я бы хотел, чтобы у меня не требует от меня, чтобы укоренить мой телефон, и готов заплатить за правильное приложение, чтобы он не должен быть свободным.

Я думаю об использовании SMB-сервера, и все, что я нашел до сих пор:

  1. SambaAndroid , который требует доступа root.
  2. androidsmb который является «реализацией сетевого файла SMB / CIFS и принтера SMB / CIFS Сервер для устройств Android «Хостинг в Google Code, который не имеет документации и не выпустил какие-либо файлы.

Это даже технически возможно для разработки SMB-сервера на Android, которое может быть установлено без доступа root?

Английский оригинал

I'm looking for a way for my HTC Hero (Android 2.1) so I can share the contents of my SD card and phone memory over the WiFi network like a regular Windows file share. I'd like one that does not require me to root my phone, and am willing to pay for the right app so it doesn't have to be free.

I'm thinking of using SMB server and all I've found so far are:

  1. SambaAndroid which requires root access.
  2. androidsmb which is a "Java implementation of the SMB/CIFS network file and printer share server for Android devices" hosted on Google Code that has no documentation and has not released any files.

Is it even technically possible to develop an SMB Server on Android that can be installed without root access?

        
 
 

Список ответов

13
 
vote
vote
Лучший ответ
 

Как ваш оригинальный вопрос все еще не отвечает, и я задавался вопросом о том же, вот ответ.

Короткий ответ: Нет, без корни невозможно запустить SMB-сервер, используя порты по умолчанию, чтобы он был найден Windows PCS.

Длинный ответ: SMB либо работает на портах 137-139 (UDP и TCP) с использованием NetBIOS или NETBIOS или в новых системах (из Windows Vista внутрь) непосредственно на порту 445 TCP, где в последнем случае имена компьютеров решаются LLMNR (ссылка -local Multicast Имя разрешения) Протокол, который работает на UDP Port 5355. Почему это важно? Приложения не работают как root Невозможно привязать к безвибальным портам (& lt; 1024). Можно использовать альтернативные порты для SMB, но Windows Wireo подключается для простого прослушивания по умолчанию. Поэтому я думаю, если вы используете Linux или отдельный клиент SMB для Windows, который позволяет подключаться к серверу с пользовательским номером порта, возможно, возможно. Но это не совсем прямой путь.

 

As your original question still isn't answered and I wondered the same, here's the answer.

Short answer: No, without root it's not possible to run an SMB server using the default ports so that it's found by Windows PCs.

Long answer: SMB either runs on ports 137-139 (UDP and TCP) using NetBIOS or on newer systems (from Windows Vista onwards) directly on TCP port 445 where in the latter case computer names are resolved by the LLMNR (Link-local Multicast Name Resolution) protocol which runs on UDP port 5355. Why is this important? Apps not running as root can't bind to unprivileged ports (<1024). It's possible to use alternative ports for SMB but Windows is hard-wired to just listen to the default ones. So I guess if you use Linux or a separate SMB client for Windows which allows to connect to a server with a custom port number it's probably possible. But it's not really a straight-forward way.

 
 
     
     
10
 
vote

Пока это может быть невозможно Запустите SMB-сервер без рута или Переадресация порта , можно запустить сервер WebDAV без рута для аналогичного эффекта.

<Сильные> Настройка сервера WebDAV Android

На моем запасе Nexus 7, я установил webdav server < / a>, открыл его, щелкнул на кнопке запуска и был немедленно удалось увидеть мой <код> /storage/sdcard /storage/sdcard папку в моем веб-браузере на URL, отображаемом приложением, т.е. <код> http://192.168.x.y:8080 < / P >.

Обратите внимание, что с WebDav у вас также есть возможность выбрать root root (/) или dcim , а также sdcard как webdav < em> root .

<Сильные> Использование сервера WebDav через проводник Windows

Я затем сопоставил <код> http://192.168.x.y:8080 в качестве сетевого диска в проводнике Windows и может получить доступ к содержимому моему хранилище, как если бы я был подключен через MTP, но через букву диска.

К сожалению, это решение невероятно медленно.

Каждое изменение каталога занимает от 6 до 20 секунд, как и доступа к большинству файлов. После доступа к файлу доступен, он передает по разумной скорости (копирование одного файла 42 МБ в Windows Explorer занял около 60 секунд, так что 700 КБ / с).

Таким образом, WebDAV через Windows Explorer Ondoor для загрузки нескольких больших файлов, расположение которых вы знаете, но просмотр или синхронизация целого устройства, этот путь не быстр. Я синхронизировал 1,75 ГБ данных примерно в 6000 файлов и 400 каталогах, и он занял 10 часов, то есть около 50 КБ / с или 10 файлов / находятся в среднем в среднем.

Использование сервера WebDAV через командную строку Windows

Даже из командной строки каждый список каталогов занимает 5-6 секунд, как и любой доступ к файлу. Копирование того же файла 42 МБ из командной строки заняла около 20 секунд, поэтому около 2,1 МБ / с.

Использование сервера WebDav через веб-браузер

Самый быстрый вариант для WebDAV - использовать ваш веб-браузер, но через данный URL-адрес. Изменение каталога редко занимает более секунды, и загрузка того же файла 42 МБ из веб-браузера заняла около 12 секунд, поэтому около 3,6 МБ / с.

Нижняя часть использования веб-браузера заключается в том, что оно показывает только дату (без размера или тип) и не дает различия между файлами и каталогами, поэтому если файл не имеет расширения (или каталог), то это может Не быть очевидно, если нажать на ссылку, приведет вас к другой веб-странице (для каталога) или начать загрузку (для файла).

<Сильные> предостережения

    .
  • по умолчанию, окна ограничивает размер WebDAV загрузок до 50000000 байтов (47,6 МБ), хотя это может быть изменился через HALK REGISTY

(< > FileSizeLimitInBytes в <код> HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWebClientParameters ) Если вы знаете, что вы делаете.

  • webdav Доступ не защищен . Даже если вы устанавливаете пароль на долю WebDav, соединение все еще <код> http не <код> https , поэтому он не зашифрован. Используйте только WebDAV в безопасной сети WiFi и, безусловно, не включайте сервер WebDav, пока вы находитесь в интернет-кафе или другим необеспеченным Wi-Fi.

  •  

    While it may not be possible to run an SMB server without root or using port forwarding, it is possible to run a WebDAV server without root for a similar effect.

    Setting up an Android WebDAV server

    On my stock Nexus 7, I installed WebDAV Server, opened it, clicked on the start button and was immediately able to see my /storage/sdcard folder in my web browser at the URL displayed by the application, i.e. http://192.168.x.y:8080

    Note that with WebDAV, you also have the option of selecting Root (/) or DCIM as well as SdCard as the WebDAV root.

    Using the WebDAV server through Windows Explorer

    I then mapped http://192.168.x.y:8080 as a network drive in Windows Explorer and could the access the contents of my storage drive, just as if I was connected via MTP, but through a drive letter.

    Sadly, this solution is incredibly slow.

    Every directory change takes between 6 and 20 seconds, as does accessing most files. Once a file is accessed though, it transfers at a reasonable speed (copying a single 42MB file in Windows Explorer took around 60 seconds, so 700KB/s).

    Thus WebDAV via Windows Explorer is Ok for downloading a few large files whose location you know, but browsing or syncing a whole device this way isn't quick. I synced 1.75GB of data in around 6000 files and 400 directories and it took 10 hours, i.e. around 50KB/s or 10 files/dirs per minute on average.

    Using the WebDAV server through Windows command line

    Even from the command line, each directory listing takes 5-6 seconds, as does any file access. Copying the same 42MB file from the command line took around 20 seconds, so around 2.1MB/s.

    Using the WebDAV server through a web browser

    The fastest option for WebDAV is to use your web browser though, directly through the URL given. Changing directory rarely takes more than a second and downloading the same 42MB file from the web browser took around 12 seconds, so around 3.6MB/s.

    The downside of using the web browser is that it only shows the date (no size or type) and makes no distinction between files and directories so if a file doesn't have an extension (or a directory does) then it may not be obvious if clicking on a link will take you to another web page (for a directory) or start a download (for a file).

    Caveats

    • By default, Windows limits the size of WebDAV downloads to 50000000 bytes (47.6MB), though this can be changed through a registry hack (FileSizeLimitInBytes in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters) if you know what you are doing.

    • WebDAV access is not secure. Even if you set a password on the WebDAV share, the connection is still http not https, so it is not encrypted. Only use WebDAV on a secure wifi network and certainly don't enable the WebDAV server while you are in an internet cafe or other unsecured wifi.

     
     
       
       
    5
     
    vote

    Проблема не является Samba Server, но тот факт, что Windows может получить доступ к Samba Share только на порту 445, а на нерубленном Android нормальное приложение не может прослушать порта 445.

    Но вы можете преодолеть это с некоторыми портами TCP:

    1. Установите A Samba Server на вашем андроиде и сделайте его слушать порта, как 7777
    2. Установите программное обеспечение для переадресации порта TCP где-то (я установил его на VirtualPC)
    3. Настройка программного обеспечения Portmapping для прослушивания подключений на порту 445 и пересылать соединения на свой Android на порт 7777
    4. Теперь вы можете получить доступ к общей папке в этой VirtualPC, и вы получите данные с Samba Server, установленные на Android (через Portmapping)

    Я подробно описал все шаги здесь в моем блоге http: //techforpassasion.blogspot. IT / 2013/12 / 12 / Android-How-to-to-folder-folder-wifi.html

    Я попробовал разные Samba Server, и единственное бесплатное приложение, которое работает в этой конфигурации, называется Samba Server

     

    The issue is not the samba server, but the fact that Windows can access a samba share only on port 445, and on a non-rooted android a normal App can't listen on port 445.

    But you can overcome this with some TCP port-mapping:

    1. Install a samba server on your android, and make it listen on a port like 7777
    2. Install a TCP port-forwarding software somewhere (I installed it on a virtualPC)
    3. Setup the portmapping software to listen for connections on port 445, and forward the connections to your android on port 7777
    4. Now you can access the shared folder on this virtualPC, and you'll get the data from the samba server installed on android (trough the portmapping)

    I've described all the steps in detail here on my blog http://techforpassion.blogspot.it/2013/12/android-how-to-share-folder-over-wifi.html

    I've tried different samba server, and the only free app that works in this configuration is called Samba Server

     
     
       
       
    2
     
    vote

    В качестве альтернативы, вы можете запустить FTP-сервер на вашем телефоне, чтобы получить доступ к контенту вашей карты SD. Проверьте SWIFTP .

     

    Alternatively, you could run a ftp server on your phone to get access to your SD card's content. Check out SwiFTP.

     
     
     
     
    2
     
    vote

    Я в настоящее время закончил app (< Сильные> для нераковых устройств ) для разделения файлов в локальной сети. Мои уроки узнали:

      .
    • Можно запустить SMB-сервер на Android без доступа root (на непривилегированном порту). Mac OS X подключается к нему без проблем (если вы транслируете свой IP и порт через Bonjour). Но Windows не. Как уже говорилось другим пользователям, Windows использует привилегированные порты «Харкодированные» для доступа SMB. Единственный способ, которым я нашел для подключения к Windows, создает обратный сетевой адаптер, как объяснено здесь (не одинаковая цель, но идея). Наконец я думаю, что пользовательнее способ использует WebDAV в Windows . Даже если Windows делает это не удобным для пользователя, потому что вы должны ввести свой IP вручную, и я не нашел способ, как это можно было обнаружить (пожалуйста, оставьте мне строку, если вы знаете, один).
    • в мире Mac OS X протокол SMB - четкий победитель . Ваша доля будет автоматически обнаружена в Bonjour и Magiciany появляется в Finder. Странно, что WebDav и FTP-акции игнорируются (не автоматически установленные искателем), хотя они поддерживаются по Bonjour. Сторонние клиенты (например, Cyberduck) не имеют проблем с автоматическим открытием этих акций.
     

    I currently finished an app (for non-rooted devices) for sharing files in local network. My lessons learned:

    • It is possible to run an SMB Server on Android without root access (on non-privileged port). Mac OS X connects to it without any problems (if you broadcast your ip and port via Bonjour). But Windows dont. As already said by another users, Windows uses "hardcoded" privileged ports for SMB access. The only way I found for connecting with Windows is creating an loopback network adapter as explained here (not the same purpose, but the idea). Finally I think, that the user-friendliest way is using WebDAV on Windows. Even if the Windows do it not user-friendly, because you have to enter your ip by hand and I did not find a way how it could be discovered (please drop me a line, if you know one).
    • In the Mac OS X world the SMB protocol is a clear winner. Your share will be auto-discovered by Bonjour and magically appears in Finder. It is weird, that WebDAV and FTP shares are ignored (not auto-mounted by Finder), though they are supported by Bonjour. Third-party clients (e.g. Cyberduck) have no problems with auto-discovery of these shares.
     
     
    1
     
    vote

    Я могу быть недоразумением, но звучит так, как вам нужен клиент SMB, а не сервер. Кроме того, вам не нужен root-доступ. Чтобы использовать SMB для файлов Tranfer на ваш компьютер, вы можете использовать Astro File Manager с SMB Addon , Или есть Файловый эксперт , который также бесплатно.

    Вы также можете использовать WebDAV вместо SMB с помощью приложения, как WebSharing .

    В прошлом я использовал приложение, которое с клиентским программным обеспечением на моем компьютере позволило мне передавать файлы через проводник файла из любой точки в Интернете. Это было не полное приложение VNC. У меня новый телефон и теперь за жизнь меня, я не могу найти приложение.

     

    I may be misunderstanding but it sounds like you need an SMB client, not a server. Also, you do not need root access. To use SMB to tranfer files to you computer you can use ASTRO File Manager with the SMB addon, or there's File Expert which is also free.

    You could also use WebDAV instead of SMB with an app like WebSharing.

    In the past I used an app that with client software on my computer allowed me to transfer files through the file explorer from anywhere through the web. It wasn't a full VNC app. I got a new phone and now for the life of me I can't find the app.

     
     
         
         

    Связанный проблема

    18  Как установить сетевые ресурсы SMB / CIFS на устройстве Android?  ( How to mount smb cifs network shares on android device ) 
    У меня есть укорененное устройство Android, работающее на пряник. Мне было интересно, есть ли способ установить свои окна CIFS (Common Internet File System) н...

    0  Как я могу установить дистанционную папку Synology на Android 8.0?  ( How do i mount a synology remote folder on android 8 0 ) 
    Мой телефон не укоренен. У меня есть общие папки на синхрологическом диске, который я могу установить на пару разных Mac, использующих разные версии Mac OSX...

    2  Как поделиться Android-каталогами через LAN с использованием протокола SMB [дубликат]  ( How to share android directories over lan using smb protocol ) 
    <в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже есть ответы здесь : ...

    0  Крепление CIFS / SMB Share до Android 10 в качестве папки?  ( Mount cifs smb share to android 10 as folder ) 
    Я пытаюсь установить CIFS долиться в Android 10 Cooted телефон, и я уже устанавливаю его, но я не могу видеть файлы в папке в других приложениях только в рути...

    1  Доступ к Windows Admin Поделиться с Android?  ( Access windows admin share from android ) 
    Я проверил несколько приложений для Android, и ни один из них, кажется, не сможет делать то, что хочу. Как мне получить доступ к акциям администратора, таки...

    2  Монтаж CIFS / Samba Volume в качестве каталога в Android  ( Mounting cifs samba volume as a directory in android ) 
    Я использую на заказ на основе Cyanogenmod 13, мое устройство укоренилось, и у меня установлено Xposed. Я ищу простое приложение для монтирования Samba или CI...

    4  Хорошая комбинация для игры в средствах массовой информации от SMB / CIFS Доля?  ( Good combination for playing media from smb cifs share ) 
    В настоящее время я использую ES File Explorer + MX Player для воспроизведения аудио и видеофайлов для этого. К сожалению, у него есть некоторые проблемы: ...

    0  Приложение для хранения сети  ( Network storage application ) 
    У меня есть устройство Android Egreat U9 с подключенным внешним жестким диском. Я хотел бы использовать это устройство также в качестве NAS и монтировать свой...

    0  Можно ли добраться до скрытого SMB / CIFS доля с Android?  ( Is it possible to reach hidden smb cifs share from android ) 
    Я использую ES file explorer , чтобы просматривать свои акции Windows. Теперь я сделал несколько долей SMB / CIFS с Linux, и он может сделать «скрытые» акции...

    19  Использование SMB-сервера без доступа к корню  ( Using smb server without root access ) 
    Я ищу способ для моего HTC Hero (Android 2.1), поэтому я могу поделиться содержимым моей карты SD и памятью телефона по сети WiFi, как обычный файл Windows. Я...