題:
使用沒有root訪問權限的SMB服務器
Day
2010-09-29 03:12:20 UTC
view on stackexchange narkive permalink

我正在尋找一種HTC Hero(Android 2.1)的方式,以便可以像常規Windows文件共享一樣通過WiFi網絡共享SD卡和手機內存中的內容。我想要一個不需要我紮根手機的人,並且願意為正確的應用付費,因此它不必免費。

我正在考慮使用SMB服務器和到目前為止,我發現的所有內容都是:

  1. SambaAndroid,它需要root用戶訪問權限。
  2. androidsmb這是一個在Google Code上託管的“適用於Android設備的SMB / CIFS網絡文件和打印機共享服務器的Java實現”,該文檔沒有文檔,也沒有發布任何文件。
  3. ol>

    從技術上講,它甚至可以在Android上開發SMB服務器,而無需root用戶訪問就可以安裝它?

我已經使用過“ Wifi資源管理器”(http://www.appbrain.com/app/wifi-file-explorer/com.dooblou.WiFiFileExplorer)了好幾次,而且效果很好,不需要root。但是,它不是SMB(也可能不是FTP)。
六 答案:
letmaik
2012-05-07 01:05:00 UTC
view on stackexchange narkive permalink

由於您的原始問題仍然沒有得到回答,我也想知道,這就是答案。

簡短的回答:不,沒有root權限,則無法使用默認端口運行SMB服務器,因此

長答案:SMB使用NetBIOS在137-139端口(UDP和TCP)上運行,或者在較新的系統(從Windows Vista開始)上直接運行在TCP端口445上,後者案例計算機名稱由運行在UDP端口5355上的LLMNR(鏈接本地多播名稱解析)協議解析。為什麼這很重要?未以root用戶身份運行的應用程序無法綁定到非特權端口(<1024)。可以為SMB使用備用端口,但是Windows硬連線只能監聽默認端口。因此,我想如果您使用Linux或Windows的單獨SMB客戶端,則可以使用自定義端口號連接服務器。但這並不是直接的方法。

一直以來都是一個很好的答案。謝謝。現在,只要我能記得_why_我需要這個...;)
好吧,我想要它,因為我懶得插入USB來訪問SD卡:D
我想知道Windows是否可以應付`\\ your.ip:port` ...
Mark Booth
2012-10-14 18:24:56 UTC
view on stackexchange narkive permalink

雖然可能無法運行沒有root用戶的SMB服務器使用端口轉發,但是也可以運行不具有root用戶的WebDAV服務器以達到類似的效果。

設置一個Android WebDAV服務器

在我的股票的Nexus 7,我安裝 WebDAV服務器,打開一看,點擊開始按鈕,立刻能看到我的 /存儲/ SD卡代碼>在網址我的網頁瀏覽器文件夾中顯示的應用程序,即 HTTP://192.168.xy:8080 代碼>

請注意,使用WebDAV,還必須選擇根(/) DCIM 以及 SD卡 EM的選項>作為WebDAV的

通過Windows資源管理強>

我然後被映射 HTTP使用WebDAV服務器:/ /192.168.xy:8080 作為Windows資源管理器中的網絡驅動器,可以訪問我的存儲驅動器的內容,就像通過MTP而是通過驅動器號進行連接一樣。

可悲的是,這種解決方案非常慢

每個目錄更改都需要6到20秒,訪問大多數文件也一樣。一旦一個文件被雖然訪問,它傳送在一個合理的速度(複製在Windows資源管理器的單個42MB文件花大約60秒,所以700KB /秒)。

因此WebDAV的經由Windows資源管理器是確定用於下載您知道位置的大文件很少,但是用這種方法瀏覽或同步整個設備並不快。我在6000左右的文件和目錄400同步1.75GB的數據,並花了10個小時,即約50KB / s或10檔/每分鐘迪爾斯平均。

通過Windows使用WebDAV服務器命令行

即使在命令行中,每個目錄列表也需要5到6秒鐘,就像訪問任何文件一樣。從命令行複制相同的42MB文件大約需要20秒,因此大約需要2.1MB / s。

通過網絡瀏覽器使用WebDAV服務器

WebDAV最快的選擇是直接通過給定的URL使用Web瀏覽器。更改目錄很少會花費超過一秒鐘的時間,並且從Web瀏覽器下載相同的42MB文件大約需要12秒,因此大約為3.6MB / s。

使用Web瀏覽器的缺點在於,它僅顯示日期(無大小或類型),並且在文件和目錄之間沒有區別,因此,如果文件沒有擴展名(或目錄沒有擴展名),則單擊鏈接將您帶到另一個網頁可能並不明顯(

注意事項

此方法在我的設備上非常快。謝謝!
在Samsung S10 + Windows 8.0上測試。工作良好。
Max
2013-12-16 15:47:14 UTC
view on stackexchange narkive permalink

問題不在於samba服務器,而是Windows只能在端口445上訪問samba共享的事實,而在非root用戶的android上,普通的應用程序無法在端口445上進行監聽。

但是您可以通過一些TCP端口映射來克服此問題:

  1. 在您的android上安裝 samba服務器,並使其監聽7777等端口
  2. >
  3. 在某個地方安裝TCP端口轉發軟件(我將其安裝在virtualPC上)
  4. 設置端口映射軟件以偵聽端口445上的連接,並將連接轉發到端口7777上的android
  5. 現在您可以訪問此virtualPC上的共享文件夾,並且將從安裝在android上的samba服務器(通過端口映射)中獲取數據
  6. ol>

    我已經在我的博客上詳細介紹了所有步驟 http://techforpassion.blogspot.it/2013/12/android-how-to-share-folder-over-wifi.html

    我嘗試了不同的samba服務器,並且在這種配置下唯一可用的免費應用稱為 Samba服務器

有趣的建議,但是您不能在瀏覽器地址欄中輸入“ \\ androids.ip:7777”嗎?
-1
Bryan Denny
2010-09-29 05:26:25 UTC
view on stackexchange narkive permalink

或者,您可以在手機上運行ftp服務器來訪問SD卡的內容。檢出 SwiFTP

我第二個SwiFTP。沒有root用戶,您將無法使用手機從手機上刪除任何文件,但是對於SD卡來說,它應該可以正常工作。
artkoenig
2015-07-30 01:51:42 UTC
view on stackexchange narkive permalink

我目前已完成用於在本地網絡中共享文件的應用(對於非root用戶的設備)。我的經驗教訓:

  • 可以在沒有root訪問權限(在非特權端口)上的Android上運行SMB服務器。 Mac OS X連接到它沒有任何問題(如果您通過Bonjour廣播了IP和端口)。但是Windows不。正如其他用戶已經說過的那樣,Windows使用“硬編碼”特權端口進行SMB訪問。我發現與Windows連接的唯一方法是按照此處的說明創建回送網絡適配器(目的不是相同,而是想法)。最後,我認為用戶友好的方式是在Windows上使用WebDAV 。即使Windows這樣做對用戶都不友好,因為您必須手動輸入ip,而我卻找不到如何發現它的方法(如果您知道,請給我下一行)。
  • 在Mac OS X世界中,SMB協議無疑是贏家。 Bonjour會自動發現您的共享,並神奇地顯示在Finder中。奇怪的是,儘管Bonjour支持,但WebDAV和FTP共享卻被忽略(Finder不會自動掛載)。第三方客戶(例如Cyber​​duck)在自動發現這些股份方面沒有問題。
Matt
2010-09-29 03:38:42 UTC
view on stackexchange narkive permalink

我可能會誤會,但聽起來您需要一個SMB客戶端,而不是服務器。另外,您不需要root用戶訪問權限。要使用SMB將文件傳輸到您的計算機,您可以將 ASTRO File Manager SMB插件一起使用,或者還可以免費使用 File Expert

您也可以在 WebSharing之類的應用中使用 WebDAV而不是SMB。

過去,我使用的應用程序在計算機上裝有客戶端軟件,該應用程序使我可以從文件管理器從網絡上的任何地方傳輸文件。它不是完整的VNC應用程序。我有一部新手機,但現在我找不到自己的應用了。

嗨,謝謝你的回答,我真的很想在電話上安裝一台服務器,以便我的(Ubuntu)PC可以在回家時將新文件推送到該服務器上,而不必甚至從口袋裡掏出電話。最好不要在PC上安裝其他軟件,但是電話上的FTP或WebDAV服務器當然也可以滿足該要求,因此看起來File Expert可以完成這項工作。我正在安裝,現在會回報感謝
嗯,FTP服務器似乎無法正常工作-Ubuntu“連接到服務器”嚮導顯示“流的意外結束”。必須去上班,以後會再試一次。
不,它確實有效。謝謝,那應該做得很好。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 2.0許可。
Loading...