我正在考虑使用SMB服务器到目前为止,我发现的全部是:
需要根访问权限的SambaAndroid。 / Codes for Android设备的/ CIFS网络文件和打印机共享服务器”托管在Google Code上,该文档没有文档,也没有发布任何文件。没有root访问权限安装了吗?
#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不会自动挂载),但它们却被忽略了。第三方客户(例如Cyberduck)在自动发现这些共享方面没有问题。
#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
评论
我已经使用过Wifi资源管理器(appbrain.com/app/wifi-file-explorer/…)了几次,而且效果很好,不需要root。不过,它不是SMB(也可能不是FTP)。