专栏名称: 失传技术研究所
失传技术研究所官方账号,专注各种技术原理讲解,科技制作
目录
相关文章推荐
深圳特区报  ·  诸婷婷:坚守的故事 | 我为美丽代言③ ·  昨天  
深圳大件事  ·  深圳知名景区通知:今起,需预约! ·  3 天前  
深圳特区报  ·  全国政协会议议程来了! ·  3 天前  
51好读  ›  专栏  ›  失传技术研究所

安卓平台旧手机平板改NAS方案探究

失传技术研究所  · 公众号  ·  · 2020-02-22 19:37

正文

作为图吧图钉,之前虽然教过各位在自家内网环境下组建一个简单实用的NAS,但是一直没有教各位用WIN以外的方案搞NAS,这里就根各位说说原因吧

其实用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, DNS, DDNS, eDonkey, Email (POP3 / SMTP), FTP Proxy, FTP, FTPS, FTPES, Flash Policy, Git, Gopher, HTTP Snoop, ICAP, IRC Bot, IRC, ISCSI, Icecast, LPD, Load Balancer, MQTT, Memcached, MongoDB, MySQL, NFS, NTP, NZB Client, Napster, PHP, Lighttpd, PXE, Port Forwarder, RTMP, Remote Control, Rsync, SIP, SMB/CIFS, SMPP, SMS, Socks, SFTP, SSH, Server Monitor, Styx, Syslog, TFTP, Telnet, Time, Torrent Client, Torrent Tracker, Trigger, Unison, UPnP Port Mapper, VNC, VPN, Wake On Lan, Web, WebDAV, WebSocket, X11 和 XMPP server等!

直接开局就开SAMBA

直接提示需要装插件

装完总好了吧

然而装好之后开SMB它最后的效果是这样的

……

就连据说端口可以自定义的MAC实际连接起来也是这样的,压根连不上啊

所以安卓SAMBA咱也放弃了,这会儿即使咱能ROOT手机在座的各位也未必能ROOT,况且咱手上已经ROOT的手机都是老掉牙的需要外挂SD卡的那种祖传手机,这玩意即使折腾成功了性能也可想而知

所以最后貌似就只能用对端口没啥指定要求的FTP了,看到这里大佬们肯定要DISS说什么FTP不行事了,外网不安全内网性能低什么的,确实,这事我也承认,本文不是只讨论安卓手机改NAS吗,FTP好歹是最后一个选项咱就别挑挑拣拣了

FTP 服务器有SwiFTP,开源的( PS. 被MIUI集成到它的文件管理器中去了,你开启远程文件管理然后用 FTP 客户端去连接,可以看到欢迎信息就是 SwiFTP )。因为 FTP 服务器和客户端都可以方便的设定端口。我经常手机上开 FTP 然后用 Filezilla 去访问。

所以还是得经常用FTP

FTP就简单了一般除了MIUI的文件管理以外一般的安卓软件支持的就挺多了(比如咱平板上的ES文件浏览器去广告版)。与其说FTP支持挺多不如说安卓基于LINUX的特性导致支持SMB之类的协议的软件太少有也不实用甚至根本没人开发吧

这会儿直接在浏览器地址栏输入链接就可以访问了

在文件浏览器的地址栏输入就可以直接看到文件夹了,是最接近现在咱NAS概念的容易实现的方案了

然而它并不支持SMB的串流,要想看视频听音乐都得先下载







请到「今天看啥」查看全文