Usando o servidor SMB sem acesso root -- wi-fi campo com root-access campo com cifs camp android Relacionado O problema

Using SMB server without root access


19
vote

problema

português

Estou procurando uma maneira para o meu HTC Hero (Android 2.1) para que eu possa compartilhar o conteúdo do meu cartão SD e memória do telefone pela rede WiFi como um compartilhamento regular de arquivos do Windows. Eu gostaria que um que não me exija para enraizar meu telefone, e estou disposto a pagar pelo app direito, então não precisa ser livre.

Estou pensando em usar o servidor SMB e tudo que eu encontrei até agora são:

    .
  1. sambaandroid que requer acesso raiz.
  2. .
  3. AndroidsMB Qual é a "Implementação Java do arquivo de rede SMB / CIFS e compartilhamento de impressora Servidor para dispositivos Android "Hospedado no Google Code que não possui documentação e não lançou nenhum arquivo.

É mesmo tecnicamente possível desenvolver um servidor SMB no Android que pode ser instalado sem acesso root?

Inglês Original

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?

        
 
 

Lista de respostas

13
 
vote
vote
Melhor resposta
 

Como sua pergunta original ainda não é respondida e eu me perguntei o mesmo, aqui está a resposta.

Resposta curta: Não, sem root Não é possível executar um servidor SMB usando as portas padrão para que seja encontrado por PCs Windows.

Longa resposta: SMB é executado nas portas 137-139 (UDP e TCP) usando NetBIOS ou em sistemas mais recentes (do Windows Vista) diretamente na porta TCP 445, onde nos últimos nomes de computador estojo são resolvidos pelo LLMNR (link -Local multicast nome resolução) Protocolo que é executado na porta UDP 5355. Por que isso é importante? Os aplicativos não estão sendo executados como root não pode se ligar a portas não privilegiadas (& lt; 1024). É possível usar portas alternativas para SMB, mas o Windows está com fio para apenas ouvir os padrões. Então eu acho que se você usar o Linux ou um cliente SMB separado para Windows que permita se conectar a um servidor com um número de porta personalizado, é provavelmente possível. Mas não é realmente uma maneira direta.

 

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

Embora possa não ser possível Execute um servidor SMB sem root ou USing Port Forwarding , é possível executar um servidor WebDAV sem raiz para um efeito similar.

Configurando um servidor Android WebDAV

No meu estoque Nexus 7, eu instalei servidor WebDAV < / a>, abriu-o, clicou no botão Iniciar e foi imediatamente capaz de ver meu /storage/sdcard pasta no meu navegador da Web no URL exibido pelo aplicativo, ou seja abcdefghijklmn1 < / p >.

Observe que com o WebDAV, você também tem a opção de selecionar raiz (/) ou dcim , bem como sdcard como o webdav < em> raiz .

Usando o servidor WebDAV através do Windows Explorer

Eu então mapeado http://192.168.x.y:8080 como uma unidade de rede no Windows Explorer e pode acessar o conteúdo da minha unidade de armazenamento, como se eu estivesse conectado via MTP, mas através de uma letra de unidade.

Infelizmente, esta solução é incrivelmente lenta.

Toda mudança de diretório leva entre 6 e 20 segundos, como acessa a maioria dos arquivos. Quando um arquivo é acessado, porém, ele transfere a uma velocidade razoável (copiando um único arquivo 42MB no Windows Explorer levou cerca de 60 segundos, portanto 700KB / S).

Assim, o WebDAV via Windows Explorer está OK para baixar alguns arquivos grandes cujo local você conhece, mas navegando ou sincronizando um dispositivo inteiro dessa maneira não é rápida. Eu sincronizei 1.75 GB de dados em cerca de 6000 arquivos e 400 diretórios e levou 10 horas, isto é, cerca de 50kb / s ou 10 arquivos / dirs por minuto em média.

Usando o servidor WebDAV através da linha de comando do Windows

Mesmo a partir da linha de comando, cada listagem de diretório leva 5-6 segundos, assim como qualquer acesso ao arquivo. Copiar o mesmo arquivo 42MB da linha de comando levou cerca de 20 segundos, então em torno de 2.1MB / s.

Usando o servidor WebDAV através de um navegador da Web

A opção mais rápida para o WebDAV é usar seu navegador da Web, diretamente através da URL. Alterar o diretório raramente leva mais de um segundo e o download do mesmo arquivo 42MB do navegador da Web levou cerca de 12 segundos, então em torno de 3.6MB / s.

A desvantagem de usar o navegador da Web é que ele mostra apenas a data (sem tamanho ou tipo) e não faz distinção entre arquivos e diretórios, por isso, se um arquivo não tiver uma extensão (ou um diretório), ele poderá Não seja óbvio se clicar em um link irá levá-lo para outra página da Web (para um diretório) ou iniciar um download (para um arquivo).

advertimentos

  • Por padrão, o Windows limita o tamanho dos downloads WebDAV para 50000000 bytes (47,6MB), embora isso possa ser alterado através de um registro de registro ( FileSizeLimitInBytes em HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWebClientParameters ) se você sabe o que está fazendo.

  • webdav Access não é seguro . Mesmo se você definir uma senha no compartilhamento WebDAV, a conexão ainda é http não https , por isso não é criptografado. use apenas o WebDAV em uma rede WiFi segura e certamente não ative o servidor WebDAV enquanto você está em um café da Internet ou outro wi-fi não garantido.

 

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

O problema não é o servidor Samba, mas o fato de que o Windows pode acessar um compartilhamento de samba apenas na porta 445, e em um aplicativo não-enraizado Android um aplicativo normal não pode ouvir na porta 445.

Mas você pode superar isso com algum mapeamento de porta TCP:

    .
  1. instalar um samba server no seu android e faça descer em um porto como 7777
  2. Instale um software de encaminhamento de porta TCP em algum lugar (eu instalei em um virtualpc)
  3. Configurar o software portmapping para ouvir conexões na porta 445 e encaminhar as conexões para o seu Android na porta 7777
  4. Agora você pode acessar a pasta compartilhada neste virtualpc, e obterá os dados do servidor Samba instalado no Android (através da carteira)

Eu descrevi todos os passos em detalhes aqui no meu blog http: //techforpassion.blogspot. IT / 2013/12 / android-how-to-sharfer-folder-over-wifi.html

Eu tentei servidor Samba diferente, e o único aplicativo gratuito que funciona nesta configuração é chamado 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

Alternativamente, você pode executar um servidor FTP no seu telefone para obter acesso ao conteúdo do seu cartão SD. Check out 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

Eu atualmente terminei um app (< Forte> para dispositivos não enraizados ) para compartilhar arquivos na rede local. Minhas lições aprendidas:

  • É possível executar um servidor SMB no Android sem acesso raiz (em porta não privilegiada). O Mac OS X conecta-o sem problemas (se você transmitir seu IP e porta via Bonjour). Mas o Windows não. Como já foi dito por outros usuários, o Windows usa portas privilegiadas "hardcoded" para acesso SMB. A única maneira que eu encontrei para se conectar com o Windows está criando um adaptador de rede de loopback como explicado aqui (não é o mesmo propósito, mas a ideia). Finalmente, acho que a maneira user-friendliest está usando o WebDAV no Windows . Mesmo que o Windows não faça amigável, porque você tem que digitar seu IP à mão e eu não encontrei uma maneira como ele poderia ser descoberto (por favor me deixe uma linha, se você sabe um).
  • no mundo Mac OS X O protocolo SMB é um vencedor claro . Sua participação será descoberta automaticamente por Bonjour e magicamente aparece no localizador. É estranho, que as ações WebDAV e FTP são ignoradas (não automaticamente montadas pelo Finder), embora sejam são suportados por Bonjour. Clientes de terceiros (por exemplo, Cyberduck) não têm problemas com a descoberta automática dessas ações.
 

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

Eu posso ser mal-entendido, mas parece que você precisa de um cliente SMB, não um servidor. Além disso, você não precisa de acesso root. Para usar o SMB para Arquivos Transfer para você, você pode usar Astro File Manager Com o Addon ou há especialista em arquivo que também é gratuito.

Você também pode usar webDav em vez de smb com um aplicativo como websharing .

No passado, usei um aplicativo que com o software cliente no meu computador permitiu-me transferir arquivos através do explorador de arquivos de qualquer lugar através da web. Não foi um aplicativo VNC completo. Eu tenho um novo telefone e agora para a vida de mim não consigo encontrar o aplicativo.

 

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.

 
 
     
     

Perguntas relacionadas

0  Use celular quando conectado ao wifi  ( Use cellular when connected to wifi ) 
Existe a possibilidade de forçar um telefone Android a usar dados celulares quando conectados ao WiFi. Para iOS eu encontrei este https: // apple .stackexcha...

8  Erro WiFi: "Falha ao se conectar à rede"  ( Wifi error failed to connect to network ) 
Intermitentemente, quando tento me conectar a uma rede WiFi, recebo a seguinte mensagem de erro como uma mensagem de torradas: . Falha ao se conectar à rede...

12  Wi-Fi desconecta durante o sono  ( Wifi disconnects during sleep ) 
Eu notei recentemente que, quando eu usaria meu telefone depois de dormir, WiFi não estaria conectado e teria que se conectar. Fui em configurações avançadas ...

0  Reproduzir vídeos de outro dispositivo Android sobre WiFi  ( Play videos from another android device over wifi ) 
Existe uma maneira de reproduzir vídeos sobre uma conexão WiFi (tethering / direct)? Estou usando um Nexus 9, que falta um slot para cartão SD. Portanto, quer...

0  Android Nougat 7.0 WiFi Internet cai após ~ 10MB  ( Android nougat 7 0 wifi internet drops after 10mb ) 
primeiro um pouco de fundo Bare comigo como todos abaixo deve ser relevante. Atualmente tenho um HTC 10, o mesmo acontece com meu pai. Meu telefone que co...

0  Usando um dongle WiFi para monitorar a rede  ( Using a wifi dongle to monitor network ) 
Eu tenho uma caixa inteligente Android com um wifi interno e quero adicionar um dongle à caixa para que eu possa monitorar a rede. Eu encontrei uma pergunta s...

5  Desligue a economia de energia Wi-Fi?  ( Turn off wi fi power saving ) 
Existe uma maneira de desativar o modo Wi-Fi Power Saving Mode no Android, I.E. The Wi-Fi Radio Fique em todos os momentos? Eu prefiro ter uma conexão Wi-Fi e...

7  Resolução de problemas Meu Wi-Fi - Não é possível obter um endereço IP  ( Troubleshooting my wifi cant get an ip address ) 
Estou usando um Samsung Galaxy Gio (Android 2.3). E não consigo obter uma conexão WiFi. Meu irmão tem o telefone exato e pode obter uma conexão. Quando eu h...

0  A rede Wi-Fi não pode digitalizada  ( Wi fi network can not scanned ) 
Eu estou tendo problema com o meu recentemente comprado Sony Xperia SL. Eu tenho roteador Cisco WAP4410N, e seu SSID não pode ser digitalizado ou conectado (m...

2  Nexus S Roring Wifi Problema de erro  ( Nexus s rooting wifi error problem ) 
Então, eu desbloqueei meu Samsung Nexus S que é executado no Android 2.3.1 e eu te enraizei. O problema agora é que eu não posso mais abrir wifi, ele continua...

4  Deixando wi-fi no tempo todo  ( Leaving wi fi on all the time ) 
Altamente afeta o tempo de espera para deixar Wi-Fi aberto o tempo todo no meu telefone? ...

0  O telefone pára usando 3G quando hotspot WiFi nas proximidades  ( Phone stops using 3g when wifi hotspot nearby ) 
Eu tenho um desejo HTC com o firmware mais recente legítimo. Eu tenho WiFi e 3G habilitado, e geralmente é bom; Em casa, ele se conecta ao meu roteador (WPA2 ...

0  Não pode se conectar à Internet através de certas redes WiFi  ( Cannot connect to internet via certain wifi networks ) 
Meu LG G3 recentemente começou a agir em que não poderá acessar a Internet através da minha casa Wi-Fi. Eu posso me conectar à Internet em outras redes WiFi, ...

13  Forçar o marshmallow para manter um acesso Wi-Fi sem acesso à Internet  ( Force marshmallow to keep a wi fi without internet access ) 
Estou associando um Nexus 5x a executar Marshmallow 6.0 a um hotspot Wi-Fi que não tem acesso à Internet. O Android continua soltando a conexão a cada segundo...

3  Wi-Fi não vai ficar fora  ( Wi fi wont stay off ) 
Eu tenho um Droid Motorola e acabei de instalar a atualização mais recente. A rede Wi-Fi no meu local de trabalho é temperamental, então eu prefiro simplesm...




© 2021 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.