其实用ARM安卓低功耗方案搞NAS咱前年吧开始有整NAS私有云的念头的时候就想过,但是最后还是放弃了,原因很简单,第一是性能,第二是系统。
安卓平台上几乎没有 SMB 服务器端NAS方案的原因:
Windows 平台上的 SMB 实现(服务端和客户端)硬编码了它的端口号 137-139 (基于 NetBIOS )或 445,使用非标准的端口提供 SMB 共享正常是无法被 Windows 找到的,所以为了适配 Windows 以及一众其他 SMB 客户端,必须使用这些标准端口号。 而在安卓上,必须拥有 root 权限才可以开启(监听)小于 1024 的端口。
监听小于 1024 端口需要 root 权限是从 Linux 一脉相承的。
linux 更多时候是用于当服务器,并且还是多人多账户同时使用的. 为了避免某个低级别的用户监听端口而导致某些基础功能服务不能使用, linux 要求必须是管理员才能监听 1024 以内的端口。而安卓的使用者只有一个普通用户, 管理员用户 和 root 用户都是默认关闭,不允许用户拥有管理员权限,所以安卓全系基本就GG了,除非能ROOT。所以安卓阵营就是改,也得先ROOT或者刷LINUX开发系统,这倒是显得IOS干这种活更容易些可惜IOS不开放文件管理权。
同样的解释适用于为什么安卓端没有 smtp 服务器,Pop 服务器。
当然非标端口又不是不能用。使用 NsdManager 广播一下协议和端口,一样可以在 Windows 上链接。(不过我并不懂怎么做上述操作。
曾经有一个功能比较完善的 SMB 服务器和客户端(安卓),叫 LAN drive。当然,同样的,它在未 root 的设备上只能使用 1024 及以上端口。所以对于 Windows 来说,要充当一个客户端去连接它,必须进行端口转换。为此这软件还专门写了一篇教程,洋洋洒洒一大段都是为 Windows 能连上它( PS. MAC 和 Linux 可自定义端口)搞功能转换。所以正常安卓旧手机改NAS没有物理限制但是实际上要 root 才可以用这就打翻一大堆小白了(包括我也不愿意为了改NAS特意折腾ROOT)
此外一般咱以图吧图钉的角度来看的话都是做内网服务器,外网环境基本还是依靠网盘或者直接拔NAS的移动硬盘解决了。不然NAS外网访问还要买内网穿透或者申请公网IP,而且安全性也堪忧,外网网速不能保证的前提下直接把NAS挂的移动硬盘都拉走是最稳妥的方案。
安卓端是有支持网络共享的软件的,比如上图这个就是一个,软件几乎没有体积(小于1M)在手机上安装之后开启服务就可以搞DLNA分享(要求手机不能锁屏不然访问会失败)
WINDOWS网络是可以直接找到设备。
需要安装驱动
然而DLNA这个协议我们并不知道怎么用来搞NAS,WIN下反正连文件目录都摸不到。
所以我们还是决定继续搞SMB(SAMBA),用这个Servers_ultimate_pro。
其可运行超过70种协议的60类服务器。包括CVS, DC Hub, DHCP, UPnP, D。
Samba服务器在Android下的搭建需要系统支持。
STEP1:下载Samba服务软件。
目前Android下有两款主要的Samba软件,各自可兼容不同的系统版本。
Android 4.0及其以下版本:SambaFilesharing。
SambaFilesharing-dev-111105.apk。
点此下载(SambaFilesharing)
文件大小:未知
Android 4.1及其以上版本:Sambadroid。
sambadroid.apk
点此下载(Sambadroid)
文件大小:未知
不保证所有设备都能正常使用,因为是否能正常使用与系统环境有关。
一般情况下无需ROOT权限,但只能共享SD卡。
下载完成后,安装运行他们
STEP2:SambaFilesharing使用介绍。
首次运行程序,会提示设置Password,按下菜单键,选择Settings,点击第一个选项PassWord就可以设置连接密码。
程序菜单部分选项的说明:
主要需要配置的就是上面的几个选项。
出于安全性考虑,这款工具不支持匿名访问,所以必须设置用户名和密码。
设置完成后重新开启程序,就可以开启Samba服务器了!
这时候进入可以访问Samba服务器的连接工具,如windows网上邻居,输入用户名密码,就可以访问建立的Samba服务器了。
QQ截图20140307212546。
1、首先设置电脑端,鼠标共享文件右键-属性。
2、点共享,添加,EVeryone 用户。
3、然后手机端下载ES文件浏览器。
4、打开ES文件浏览器,在主界面-点击左侧的列表。
5、然后在列表下,找到并点击-局域网选项。
6、然后在局域网选项里点下方的-扫描选项。
7、最后找到共享电脑-进入共享文件夹就完成了。
用一款基于Android的开源服务器软件KSWEB搭建的,通过使用lighttpd、nginx、apache、mysql、php、ftp等运行组件,就可以使安卓手机变成一台服务器,而且它兼容多数主流PHP程序,搭配一款花生壳内网穿透就可以实现随时随地远程外网访问搭建的服务应用。
Samba是SMB协议的一个免费软件,由服务器及客户端程序构成。SMB意思就是 Server Messages Block,也就是信息服务块,通过smb协议,实现不同的平台不同的路径进行数据分享的一种技术,一般需要服务端提供用户名、账户、访问路径等。
下面我基于ubuntu分步骤写下samba新增用户和共享文件路径,这里假定用户是test,用户组是testgroup:
1、新增用户
sudo useradd test -g testgroup。
2、修改用户密码
sudo passwd testpassword //可以改为你自己的密码。
3、修改samba密码
sudo smbpasswd -a testsmbpassword //可以改为你自己的samba密码。
4、新增或修改访问路径
sudo vi /etc/samba/smb.conf。
输入一下
[test]
comment = test folder。
browseable = yes。
writable = yes
path = /test/test。
create mask = 0777 //创建权限。
directory mask = 0777 //目录权限。
valid users = test //用户名。
public = yes
available = yes。
:wq保存退出就可以访问了,这样全部就配置完成了。