我正在寻找HTC Hero(Android 2.1)的方式,以便可以像常规Windows文件共享一样通过WiFi网络共享SD卡和手机内存中的内容。我想要一个不需要我扎根手机的人,并且愿意为正确的应用付费,因此它不必免费。

我正在考虑使用SMB服务器到目前为止,我发现的全部是:



需要根访问权限的SambaAndroid。 / Codes for Android设备的/ CIFS网络文件和打印机共享服务器”托管在Google Code上,该文档没有文档,也没有发布任何文件。没有root访问权限安装了吗?

评论

我已经使用过Wifi资源管理器(appbrain.com/app/wifi-file-explorer/…)了几次,而且效果很好,不需要root。不过,它不是SMB(也可能不是FTP)。

#1 楼

由于您的原始问题仍然没有得到答案,我也想知道,这就是答案。

简短的回答:不,没有root用户,就不可能使用默认端口运行SMB服务器,以便找到它

长答案:SMB可以使用NetBIOS在137-139端口(UDP和TCP)上运行,也可以直接在TCP端口445上的较新系统(从Windows Vista开始)上运行,计算机名称由运行在UDP端口5355上的LLMNR(链接本地多播名称解析)协议解析。为什么这很重要?未以root用户身份运行的应用程序无法绑定到非特权端口(<1024)。可以为SMB使用备用端口,但是Windows硬连线只能监听默认端口。因此,我想如果您使用Linux或Windows的单独SMB客户端,则可以使用自定义端口号连接到服务器,这可能是可能的。但这并不是一个简单的方法。

评论


一直以来,这都是一个很好的答案。谢谢。现在只要我能记得为什么我需要这个...;)

–天
2012年5月8日14:52



好吧,我想要它,因为我懒得插入USB来访问SD卡:D

–letmaik
2012年5月8日18:23

我想知道Windows是否可以应付\\ your.ip:port ...

– Tobias Kienzler
15年1月15日在18:33

#2 楼

虽然可能无法在没有root用户的情况下运行SMB服务器或使用端口转发,但也可以在没有root用户的情况下运行WebDAV服务器,以达到类似效果。

设置Android WebDAV服务器

在我的股票Nexus 7上,我安装了WebDAV Server,将其打开,单击“开始”按钮,然后立即可以在Web浏览器中通过应用程序显示的URL看到/storage/sdcard文件夹,即http://192.168.x.y:8080

请注意,对于WebDAV,您还可以选择选择根(/)或DCIM以及SdCard作为WebDAV根。

通过Windows资源管理器使用WebDAV服务器

然后我将http://192.168.x.y:8080映射为Windows资源管理器中的网络驱动器,并且可以访问我的存储驱动器的内容,就像通过MTP通过驱动器号进行连接一样。可悲的是,此解决方案的速度非常慢。

每个目录更改都需要6到20秒,访问大多数文件也是如此。但是,一旦访问了文件,它就会以合理的速度传输(在Windows资源管理器中复制单个42MB文件大约需要60秒,因此需要700KB / s)。您知道一些大文件的位置,但是用这种方式浏览或同步整个设备并不快。我在大约6000个文件和400个目录中同步了1.75GB的数据,这花费了10个小时,即平均大约每分钟50KB / s或10个文件/目录。

通过Windows命令行使用WebDAV服务器

即使在命令行中,每个目录列表也需要5到6秒钟,就像访问任何文件一样。从命令行复制相同的42MB文件大约需要20秒,因此大约需要2.1MB / s。

通过Web浏览器使用WebDAV服务器

WebDAV最快的选择是直接通过给定的URL使用Web浏览器。更改目录很少会花费超过一秒钟的时间,而从Web浏览器下载相同的42MB文件大约需要12秒,因此大约为3.6MB / s。日期(无大小或类型),并且文件和目录之间没有区别,因此,如果文件没有扩展名(或目录没有扩展名),则单击链接将您带到另一个网页可能并不明显(对于目录)或开始下载(对于文件)。

注意事项


默认情况下,Windows限制WebDAV下载的大小为50000000字节( 47.6MB),但是如果您知道自己在做什么,则可以通过注册表修改(FileSizeLimitInBytes中的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters)来更改。即使您在WebDAV共享上设置了密码,连接仍然是http而不是https,因此未加密。仅在安全的wifi网络上使用WebDAV,并且当您在网吧或其他不安全的wifi中时,一定不要启用WebDAV服务器。


评论


此方法在我的设备上非常快。谢谢!

–集群
18 Mar 10 '18 at 9:45

在Samsung S10 + Windows 8.0上测试。工作良好。

–甘草
19年6月20日在16:07

#3 楼

问题不在于samba服务器,而是Windows只能在端口445上访问samba共享的事实,而在非root用户的android上,普通的应用程序无法在端口445上进行监听。您可以通过一些TCP端口映射克服此问题:


在android上安装samba服务器,并使其在7777等端口上侦听
安装TCP端口转发某个地方的软件(我将其安装在virtualPC上)
设置端口映射软件以侦听端口445上的连接,并将连接转发到端口7777上的android
现在您可以访问此virtualPC上的共享文件夹,您将从安装在android上的samba服务器(通过端口映射)中获取数据。

我已经在我的博客上详细描述了所有步骤
http:// techforpassion .blogspot.it / 2013/12 / android-how-to-share-folder-over-wifi.html

我尝试了不同的samba服务器,并且是唯一在此配置下有效的免费应用被称为Samba服务器

评论


有趣的建议,但是您不能在浏览器地址栏中输入\\ androids.ip:7777之类的内容吗?

– Tobias Kienzler
15年1月15日在18:34

@tobias kienzler据我所知,这行不通

–最大
15年1月15日在19:52

#4 楼

或者,您可以在手机上运行ftp服务器以访问SD卡的内容。查看SwiFTP。

评论


我第二个SwiFTP。没有root用户,您将无法使用手机从手机上删除任何文件,但是对于SD卡来说,它应该可以正常工作。

–网站
2010-09-29 12:57

#5 楼

我目前完成了一个用于非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)在自动发现这些共享方面没有问题。


#6 楼

我可能会误会,但听起来您需要一个SMB客户端,而不是服务器。另外,您不需要root用户访问权限。要使用SMB将文件传输到计算机,您可以将ASTRO File Manager与SMB插件一起使用,或者也可以免费使用File Expert。 。

过去,我使用的应用程序带有计算机上的客户端软件,该应用程序使我可以从文件管理器从网络上的任何地方传输文件。它不是完整的VNC应用程序。我有一部新手机,但现在我找不到自己的应用了。

评论


嗨,谢谢你的回答,我真的很想在电话上安装一台服务器,以便我的(Ubuntu)PC可以在回家时将新文件推送到该服务器上,而不必甚至从口袋里掏出手机。最好不要在PC上安装其他软件,但是电话上的FTP或WebDAV服务器当然也可以满足该要求,因此看起来File Expert可以胜任。我正在安装,现在会回报感谢

–天
2010-09-29 7:54

嗯,FTP服务器似乎无法正常工作-Ubuntu“连接到服务器”向导显示“流的意外结束”。必须去上班,以后会再试一次。

–天
2010-09-29 8:03



不,它确实有效。谢谢,那应该做得很好。

–天
2010-09-29 20:53