安卓平台上几乎没有 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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)