ルートアクセスなしでSMBサーバーを使用する


18

HTC Hero(Android 2.1)の方法を探しているので、SDカードと携帯電話のメモリの内容を、通常のWindowsファイル共有のようにWiFiネットワーク経由で共有できます。電話をルート化する必要のないものが欲しいので、適切なアプリにお金を払って喜んでくれるので、無料である必要はありません。

SMBサーバーを使用することを考えていますが、これまでに発見したことは次のとおりです。

  1. ルートアクセスが必要なSambaAndroid
  2. androidsmbは、Google Codeでホストされる「Androidデバイス用のSMB / CIFSネットワークファイルおよびプリンター共有サーバーのJava実装」であり、ドキュメントはなく、ファイルもリリースしていません。

rootアクセスなしでインストールできるAndroid上でSMBサーバーを開発することは技術的にも可能ですか?


Wifi Explorerappbrain.com/app/wifi-file-explorer/…)を数回使用しましたが、うまく機能し、ルートは不要です。ただし、SMBではありません(おそらくFTPでもありません)。
ジョーカサドンテ

回答:


12

あなたの元の質問はまだ答えられておらず、私も同じことを思ったので、ここに答えがあります。

簡単な答え:いいえ、rootがなければ、デフォルトポートを使用してSMBサーバーを実行することはできません。そのため、Windows PCで検出されます。

長い答え:SMBは、NetBIOSを使用してポート137-139(UDPおよびTCP)で、またはTCPポート445で直接新しいシステム(Windows Vista以降)で実行されます。後者の場合、コンピューター名はLLMNR(リンクローカルマルチキャスト)によって解決されます名前解決)UDPポート5355で実行されるプロトコル。これはなぜ重要ですか?ルートとして実行されていないアプリは、非特権ポート(<1024)にバインドできません。SMBの代替ポートを使用することは可能ですが、Windowsはデフォルトのポートをリッスンするように配線されています。したがって、LinuxまたはWindows用の個別のSMBクライアントを使用して、カスタムポート番号でサーバーに接続できる場合は、おそらく可能です。しかし、それは本当に簡単な方法ではありません。


結局のところ、すばらしい実際の答えです。ありがとう。今、私は覚えることができる場合にのみ、なぜ私はこれを必要と...;)

3
まあ、私はそれが欲しかったので、私はUSBをプラグインしてSDカードにアクセスするのが
面倒だから

Windowsに対処できるかどうか\\your.ip:port
トビアスキンツラー

10

rootなしで、またはポート転送を使用してSMBサーバー実行することはできない場合がありますが、同様の効果のためにrootなしでWebDAVサーバーを実行することは可能です。

Android WebDAVサーバーのセットアップ

在庫のNexus 7にWebDAVサーバーをインストールし、それを開き、スタートボタンをクリックすると/storage/sdcard、アプリケーションによって表示されたURLでWebブラウザーのフォルダーをすぐに見ることができました。http://192.168.x.y:8080

WebDAVでは、WebDAV ルートとしてSdCardと同様にルート(/)またはDCIMを選択するオプションもあります。

Windows Explorerを介してWebDAVサーバーを使用する

その後http://192.168.x.y:8080、Windowsエクスプローラーでネットワークドライブとしてマップし、MTPを介して接続されているかのように、ドライブ文字を介してストレージドライブのコンテンツにアクセスできました。

残念ながら、このソリューションは非常に遅いです。

ほとんどのファイルへのアクセスと同様に、すべてのディレクトリの変更には6〜20秒かかります。ただし、ファイルにアクセスすると、妥当な速度で転送されます(Windows Explorerで42MBのファイルを1つコピーするのに約60秒かかりましたので、700KB / s)。

したがって、Windowsエクスプローラを介したWebDAVは、場所がわかっているいくつかの大きなファイルをダウンロードしても問題ありませんが、この方法でデバイス全体を閲覧または同期するのは簡単ではありません。約6000個のファイルと400個のディレクトリで1.75GBのデータを同期し、10時間かかりました。つまり、平均で1分あたり約50KB /秒または10個のファイル/ディレクトリです。

WindowsコマンドラインからWebDAVサーバーを使用する

コマンドラインからでも、各ディレクトリのリストは、ファイルアクセスと同様に5〜6秒かかります。コマンドラインから同じ42MBファイルをコピーするのに約20秒かかったため、約2.1MB / sでした。

Webブラウザ経由でWebDAVサーバーを使用する

ただし、WebDAVの最速のオプションは、指定されたURLから直接Webブラウザーを使用することです。ディレクトリの変更に1秒以上かかることはめったになく、Webブラウザから同じ42MBのファイルをダウンロードするのに約12秒かかったため、約3.6MB / sでした。

Webブラウザーを使用する場合の欠点は、日付のみ(サイズまたはタイプなし)を表示し、ファイルとディレクトリを区別しないため、ファイルに拡張子がない場合(またはディレクトリにある場合)リンクをクリックして別のWebページに移動する場合(ディレクトリの場合)、またはダウンロードを開始する場合(ファイルの場合)。

注意事項

  • 既定では、WindowsはWebDAVダウンロードのサイズを50000000バイト(47.6MB)に制限していますが、これはレジストリハックFileSizeLimitInBytesin HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters)で何をしているのかわかっている場合は変更できます。

  • WebDAVアクセスは安全ではありません。あなたはWebDAV共有にパスワードを設定しても、接続はまだありhttpませんhttpsので、それは暗号化されません。安全なwifiネットワークでのみWebDAVを使用し、インターネットカフェやその他の安全でないwifiにいる間はWebDAVサーバーを有効にしないでください。


この方法は私のデバイスではかなり高速です。ありがとうございました!
クラスター

Samsung S10 + Windows 8.0でテスト済み。正常に動作します。
Brethlosze

5

問題は、sambaサーバーではなく、Windowsがポート445でのみsamba共有にアクセスでき、ルート化されていないAndroidではポート445で通常のアプリがリッスンできないという事実です。

ただし、TCPポートマッピングを使用してこれを克服できます。

  1. AndroidにSambaサーバーをインストールし、7777などのポートでリッスンさせる
  2. TCPポート転送ソフトウェアをどこかにインストールします(virtualPCにインストールしました)
  3. ポート445で接続をリッスンするようにポートマッピングソフトウェアをセットアップし、ポート7777で接続をAndroidに転送します
  4. これで、このvirtualPCの共有フォルダーにアクセスでき、Androidにインストールされたsambaサーバーからデータを取得できます(ポートマッピングを介して)

ブログhttp://techforpassion.blogspot.it/2013/12/android-how-to-share-folder-over-wifi.htmlですべての手順をここで詳しく説明しました

私は別のsambaサーバーを試しましたが、この構成で機能する唯一の無料アプリはSambaサーバーと呼ばれます


興味深い提案ですが\\androids.ip:7777、エクスプローラーのアドレスバーに何か入力できませんか?
トビアスキンツラー

1
@tobias kienzler私の知る限り、これは動作しません
マックス

2

または、電話機でftpサーバーを実行して、SDカードのコンテンツにアクセスすることもできます。SwiFTPをご覧ください。


2番目のSwiFTP。rootにならなければ、それを使用して電話からファイルを取得することはできませんが、SDカードでは正常に機能するはずです。
ウェブ

2

現在、ローカルネットワークでファイルを共有するためのアプリ非ルートデバイス用)を完成させました。私が学んだ教訓:

  • ルートアクセスなしで(非特権ポートで)AndroidでSMBサーバーを実行することができます。Mac OS Xは問題なく接続します(IPとポートをBonjour経由でブロードキャストする場合)。しかし、Windowsはいけません。別のユーザーが既に言ったように、WindowsはSMBアクセスに「ハードコードされた」特権ポートを使用します。Windowsと接続するために見つけた唯一の方法は、ここで説明したループバックネットワークアダプターを作成することです(同じ目的ではなく、アイデアです)。最後に、ユーザーフレンドリーな方法はWindowsでWebDAVを使用することだと思います。あなたが手動でIPを入力する必要があり、私がそれを発見する方法を見つけられなかったため、Windowsがユーザーフレンドリーではない場合でも(私が知っていれば、私にラインをドロップしてください)。
  • Mac OS Xの世界では、SMBプロトコルが明確な勝者です。共有はBonjourによって自動検出され、Finderに魔法のように表示されます。Bonjourでサポートされているにもかかわらず、WebDAVおよびFTP共有が無視される(Finderによって自動マウントされない)のは奇妙です。サードパーティのクライアント(Cyber​​duckなど)は、これらの共有の自動検出に問題はありません。

1

誤解しているかもしれませんが、サーバーではなくSMBクライアントが必要なようです。また、ルートアクセスは必要ありません。SMBを使用してコンピューターにファイルを転送するには、ASTRO File ManagerSMBアドオンを使用するか、無料のFile Expertを使用します。

WebSharingなどのアプリでSMBの代わりにWebDAVを使用することもできます。

以前は、コンピューター上のクライアントソフトウェアを使用して、Webのどこからでもファイルエクスプローラーを介してファイルを転送できるアプリを使用していました。完全なVNCアプリではありませんでした。私は新しい携帯電話を手に入れましたが、今は私の人生ではアプリが見つかりません。


こんにちは、回答に感謝します。私は、携帯電話をポケットから取り出すことなく、家に帰ったときに(Ubuntu)PCが新しいファイルをプッシュできるように、携帯電話にサーバーが本当に必要でした。PCに追加のソフトウェアを必要としないことをお勧めしますが、もちろん電話のFTPまたはWebDAVサーバーもその要件を満たすため、File Expertが仕事をするようです。私が今インストールしているのは、感謝を報告します

うーん、FTPサーバーは機能していないようです-Ubuntuの「サーバーに接続」ウィザードは「予期しないストリームの終了」と言います。仕事に行かなければならない、後で再試行しますta。

いいえ、動作しません...急いでいるのは私のせいです。これで仕事はうまくいくはずです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.