一步步把路由器变成NAS—离线下载+文件共享 AND MORE
提示
请注意本文写作的历史环境,当时家用 NAS 尚未流行,本着折腾的态度让路由器承担了太多。如今看来这不是一个好的做法,路由器作为网络底层设备,应尽可能的精简与稳定。切忌 All in BOOM。有需求的同学建议上专业的 NAS,至少可以选择轻量级 NAS。至于路由器,就让它做好本职工作吧。
家里升级了电信200M宽带,上行也提高到了20M,原来的百兆路由器已经不能满足需要了,经过一番比较最终入手了华硕AC86U。不过那么快的网速加上辣么棒的路由器,不做点别的实在太可惜了。折腾了一会后,成功实现媒体服务器、离线下载、远程管理、文件共享等诸多功能,着实提高了生活质量。
软硬件准备
路由器
路由器:华硕AC86U
固件:梅林
其他设备例如部分网件路由器也可以刷梅林固件,不行的话只好找其他固件或插件实现。本文提供的是一个思路,不同设备固件有不同的实现方法。
外接存储设备
我选择了一块闲置东芝USB3.0移动硬盘,直接插到路由器USB口即可。格式推荐用NTFS,路由器和windows都可以识别。
因为USB3.0与2.4G WIFI 有干扰,路由器默认限制了USB性能以减低干扰。不过家里大多数常用设备都使用5G频率,故这里关闭此功能。这个设置位于无线网络—专业设置—2.4G频段
下。
媒体服务器
顾名思义,媒体服务器专门提供媒体资源,与FTP等文件传输协议不同,媒体服务器不需要预先下载到本地,可以在终端设备在线观看视频,并支持拖拽快进等操作。需要强调的是,媒体服务是协议级别的,因此它并不需要特别的设备、特别的系统或指定某公司的APP,简而言之就是任意一个设备接入局域网后都可以实现流媒体播放。如此一来路由器可以作为全家的媒体库,其中储存的电影可以在电脑、手机、平板、电视等设备随时播放。
梅林固件开启媒体服务非常简单,在USB相关应用—媒体服务器
下可以轻松开启。
默认情况下会共享存储设备里所有媒体,如果不想这样可以选择手动设定媒体服务器路径
,然后在下方添加想要共享的目录以及文件类型即可。
PS:媒体服务器中文件目录并不是按照实际路径显示的,而是根据类型自动分类。因此看到的文件位置不代表其真实路径。
PC端观看
以 WIN10 系统为例。打开网络
,即可在媒体设备分组中找到我们的媒体服务器。右击选择打开媒体播放机
即可浏览媒体库并在线播放。
桌面没有「网络」?
在桌面右击,选择「个性化」,在打开的设置页面左侧选择「主题」,在右侧点击「桌面图标设置」,勾选「网络」即可。在 WIN7 等系统中,「网络」也叫「网上邻居」。
手机、平板观看
以 Android 系统为例。其实手机端大多数播放器都支持播放流媒体,但不是所有都支持扫描发现局域网中的媒体服务器。所以首先需要安装可以扫描发现媒体的应用,「VLC」以及「ES文件浏览器」等是具有此功能的。这里以 VLC 为例。
VLC 是著名的开源、跨平台的媒体播放软件。支持 Windows、Linux、Mac、Android、IOS 主流系统。
进入 LVC 点击左上角菜单按钮,选择本地网络
,即可扫描到我们的媒体服务器,点进去选择文件就可以播放了。
电视观看
首先得确定电视是智能设备,或者有小米盒子之类智能机顶盒也行。这里以小米盒子为例。
小米盒子内置应用「高清播放器」自带局域网发现功能。打开高清播放器,在主页就可以看到路由器的视频已经扫描到并聚合在一起了,点击即可播放。如果想单独浏览,可以切换到设备
选项卡,在DLNA设备
中可以看到我们的媒体服务器。
PS:在设备
选项卡,可能会看到一个名称类似的网络共享设备
,点进去也可以浏览文件并播放,这是后面要讲的文件共享。他和媒体服务器功能有一定重叠。
离线下载
离线(远程)下载与媒体服务器(文件共享)简直是绝配。试想:在外面提交一个电影下载任务,回到家正好下载完,此时随便一个设备接入WIFI就可以开始欣赏,甚至可以中途切换设备。生活岂不美滋滋 (′▽`〃)
华硕固件自带一个离线下载器,位于USB相关应用 — Download Master
,不过感觉并不是很好用,只能支持传统的下载链接。而国内情况是好多资源在百度云、115等网盘。所以这里使用「Aria2」实现。
Aria2 是一个跨平台轻量级下载工具。支持 HTTP(s)、FTP、SFTP、BT、Metalink 多种协议。其本身是纯命令行控制的,但是可以通过 RPC 协议实现可视化远程控制。亦可以通过 RPC 接入百度云等网盘。
听不懂这些?没关系,只要知道它很好用就OK了。
幸运的是,梅林固件软件中心有 Aria2
插件,大幅简化了安装配置。
Aria2 服务器配置
从软件中心安装 Aria2
,点进去开始配置。开启后,大多数保持默认即可。下载存储目录是默认的文件保存目录,默认是第一个USB设备的根目录,如果没有USB设备则默认是路由器内存(小的可怜)。磁盘缓存大小指的是下载的数据缓存多少时再一次性写入存储设备,可以减少硬盘读写次数,一定程度延长硬盘寿命。默认是0,不要改得太大,否则内存也不够用。
然后切换到RPC设定
选项卡,最下面会随机生成一个 token,这是一会远程控制时候需要的,如果觉得太复杂可以自己改。端口号默认是6800也可以改(注意别冲突了),记住一会需要用。
Aria2 控制台配置
在上面可以看到推荐有3个控制台可供选择。建议使用 yaaw
)或 webui
(全)。
点击链接进入 yaaw 控制台,首次使用要点击右上方的扳手按钮进行配置。主要需要配置的是 JSON-RPC Path
,也就是告诉控制台如连接你的 Aria2 服务器。
在这里填入的你路由器地址 + Aria2 服务端口号 + /jsonrpc
. 例如我路由器IP是192.168.50.1,Aria2 端口号是6800,则应该填入 http://192.168.50.1:6800/jsonrpc
. 如果设置了 token,则在协议后面加上 token:xxx@
,例如我 token 是 123123123,则应该填入 http://token:123123123@192.168.50.1:6800/jsonrpc
.
保存后没有任何错误提示则是成功连接,可以点击添加来添加下载任务了。
webui 控制台类似,不过是各个参数分开设置了。依然是刚才的例子,在 webui 配置如下:
到此离线下载就配置完成了,把挂机任务交给路由器吧 (๑•ᴗ•๑)
上面的三个控制台其实是公网链接,也就是说即使不在家里局域网也可以访问并添加任务。但是要注意,控制台仅仅是提供一个界面,真正的下载任务还是要提交的路由器执行的,所以如果路由器不支持远程访问,即便能够访问控制台也无法添加下载。
那怎么实现远程访问腻?往下翻↓
接入百度云等网盘
为了方便,接入第三方下载建议使用插件。你可以自行搜索对应的浏览器插件配置使用。但这里更建议使用油猴脚本。
油猴(tampermonkey) 是跨平台浏览器脚本管理器,以浏览器插件形式存在,本身又提供了一个框架可以部署诸多脚本。支持 Chrome、Microsoft、Opera Next、Firefox诸多主流浏览器。(包括Chrome内核的QQ浏览器、360浏览器等)你可以在各自浏览器的插件中心搜索安装,或从官网下载安装。
安装了油猴之后,可以安装Ci-Aria2百度云增强版,当然,你也可以选择其他喜欢的插件。
随便打开一个百度云的分享,比如这个,首次使用记得配置插件,和配置控制台一样,填入相关参数即可。然后点击CiAria2-下载
,点击发送,就可以提交给路由器下载啦。
115等其他网盘同理,类似配置。 推荐一个115的脚本:115网盘Aria2助手,配合 fake 115 实现浏览器账号登陆。
远程管理
远程管理不仅仅是从外面登陆路由器的管理后台,而是提供了一个外网访问内网的通道,作为一个底层架构,使得离线下载、文件共享等诸多功能打破局域网的限制,能够在世界各地使用,成为一个简易的私有云。
实现远程管理的前提是家里拥有公网IP. (其实也不是没有别的办法,「内网穿透」就是专门应对这种情况的解决方案,比如花生壳内网穿透,但免费的穿透服务往往速度慢稳定性差,不建议折腾了。具体原理与配置不在本文讨论范围内)
公网IP
每一个接入网络的设备都有IP地址,列如我的路由器IP是192.168.50.1,通过这个地址就可以访问。但是这个IP是内网IP,也就是说只有在我接入家里路由器局域网后才可以访问,如果我在公司,那么就无法访问了。
公网IP是一个全球可路由的地址。说人话就是拥有公网IP的设备可以从全球任何一个接入互联网的地方访问到。无论是家里、公司、还是移动流量。
不过很可惜,由于IP资源枯竭(IPv4),越来越多的运营商分配的是经过NAT转换的内网地址。说人话就是家里的IP不是公网的,无法实现从任意一个地方可访问。也就无法实现远程管理。
如何判断是否是公网IP
一个简单的方法是比对路由器WAN口IP与实际出口IP是否相同。在这里可以查看实际出口IP。在路由器网络地图
页面可以看到WAN口IP. 若两个相同则是公网,否则不是。PS:对于电信用户,若WAN口IP是100开头则一般不是公网的。
那么如何获得公网IP呢?
不同区域的不同运营商的不同套餐,获取公网IP的难度是不一样的。一般来说,电信联通这种一级运营商容易些,移动长城等二级运营商困难些,三级运营商基本上没希望了。同一运营商标准宽带套餐容易些,免费赠送/提速的宽带困难些。
我是电信标准套餐,直接致电10000客服要求换公网IP就轻松拿到了。
如果不给换的这里给个技巧:不要说换公网,而是说家里买了个网络摄像头或NAS,但是在外面用不了,商城客服说是运营商的问题,问能不能解决下。如果客服装傻就再点播一下:听说要什么公网IP之类的不知道是怎么回事。
如果还不行那就放弃吧,或者有精力也可以去工信部在线申诉。
配置DDNS
有了公网IP我们就需要DDNS服务来动态解析
虽然我们有了公网IP,但是IP不是固定的,每次拨号都可能变化,甚至运营商会强制变化。而作为服务器,是需要有固定的IP的,于是有了DDNS动态域名解析服务。域名解析就是把域名和IP对应起来,动态解析就是把域名动态地和IP对应起来,IP变化时解析也会变,从而实现无论IP怎么变,都可以使用固定的域名访问。
在国内推荐使用花生壳的免费DDNS服务。先去注册个账号,然后进入后台管理。在域名—壳域名
点添加域名
。
选中喜欢的免费域名,输入喜欢的前缀查找。然后按照流程注册即可。
回到路由器配置界面,对于梅林固件,在外部网络—DDNS
选项卡下面可以配置DDNS服务。服务器选择花生壳,按图填写设置即可。梅林固件可以自动获取域名,有的固件需要手动填写,就填写刚才注册的那个即可。
启用远程管理
在系统管理—系统设置
里开启「从互联网设置」,端口默认8443. 注意:运营商把80/443/8080等常见网页端口都给封了,要避开这些。
不出意外,现在在浏览器输入刚才注册的域名+端口号就可以访问路由器后台了。例如我注册域名是test.iok.la
,端是8443
,那么访问的网址就是https://test.iok.la:8443
注意,必须是https。 刚才在路由器设置的时候已经有提示了。
但是!出现了一个安全警告:
这是因为路由器强制外网管理使用https,https需要证书,当前使用的是路由器自己签发的证书,仅仅能够加密流量但本身不受信任,于是出现了警告。梅林固件本身提供了一个方案,就是通过 Let's Encrypt 来获取一个普遍受信任的证书。但是使用这个服务需要开放80端口,这个这国内很难做到。
当然也有很多曲线救国的策略,例如:把自签发证书添加信任、自己去申请一个证书等等。但是这些要么操作复杂或者需要顶级域名、云空间、服务器等额外付费的东西,不适合新手。如果你是技术宅,相信不看教程也知道怎么搞了。所以最后给出的方案就是:忽略警告(别打我( ̄_, ̄ ))
远程下载
还记得上一节讲的离线下载可以远程化嘛。现在配置好DDNS后就可以实现啦。很简单,只要把控制台的 Aria2 地址改成我们注册的域名即可。其他网盘插件的地址记得都要修改哦。
例如原先配置是 http://token:123123123@192.168.50.1:6800/jsonrpc
,现在把它改成 http://token:123123123@test.iok.la:6800/jsonrpc
就OK啦~ 现在我们可以在任何一个地方访问控制台并添加下载任务。建议把控制台放浏览器书签栏,一键直达嘿嘿。
文件共享
终于到最后一个啦。文件共享是一个广义的概念,可以用诸多协议实现。
SMB 网络共享
此方式的特点是无需输入,类似媒体服务器,可以自主扫描发现,但仅支持局域网内使用。
对于梅林固件,在 USB相关应用—服务器中心—网络共享
可以轻松启用配置共享。需要注意的是,默认版本是v1+v2,这在 WIN10 上会有兼容性问题,所以改成了v1. 因为凡是能接入局域网的用户默认都过了认证,因此这里允许访客登入来简化使用。
对于 WIN10 系统,打开网络
,在计算机
分组就可以看到扫描到我们的共享了。点击去可以进行文件管理,与媒体服务器不同,网络共享里面文件是安装实际目录显示的。
同样,在 MAC、Android、IOS 等系统借助支持网络共享协议的应用也可以管理文件。例如「ES 文件浏览器」 中,在网络—局域网
下面就可以看到路由器文件啦。
FTP
FTP 是文件传输协议,它需要建立连接并登录使用,不能够自主发现,但是可以支持公网访问。
梅林固件也内置了FTP服务器功能,在 USB相关应用—服务器中心—以FTP共享硬盘
可以轻松配置FTP. 如果开启了公网登录,务必禁止匿名登录并确保路由器密码足够复杂,否则万一被别人进去就不好玩了。
也可以添加更多的用户,每个用户分配不同的权限来实现更高级、安全的管理。R
指读取,W
是写入,No
是禁止。
对于 Windows 系统,可以直接在我的电脑
里输入FTP地址来访问,例如ftp://192.168.50.1
,如果设置好了DDNS,那么也可以使用域名访问,这样即使在外面也可以连接了。
当然,也可以选择其他FTP客户端来获得更好的使用体验。其他系统也分别有适配的FTP客户端软件可供选择。
AiCloud
AiCloud 是华硕(梅林)自有的一个文件共享功能。他的特点是基于HTTP,无需任何客户端,任何设备只要有浏览器就可以访问并管理文件,也支持在线播放。在AiCloud2.0
中开启 USB云盘
就可以了。
上面列出了路由器地址和服务的端口号,在浏览器打开并登录就可以使用了。个人觉得这个虽然方便,但体验不是很好,尤其是视频在线播放,做的比较粗糙,甚至不能全屏 =、= 适合临时下载或上传个小文件。
END
到此,我们已经实现了远程下载、远程管理、文件共享,好好搭配使用这些服务,基本可以零成本搭建私有云和家庭媒体中心。
最后再说一下安全问题。一旦配置了DDNS,就相当于任何人都可以从公网访问到路由器,此时用户名和密码显得尤为重要。作为一个简易系统,并不具备腾讯百度那种风控机制,对于密码爆破等攻击基本上束手无策。所以还是不要在里面放什么敏感文件,以免又搞出个XX门就不好了。