Bowen's Blog

Respect My Authorita.

Openwrt+迅雷离线实现离线下载以及家庭存储解决方案

| Comments

前一段时间考虑如果实现一个家庭存储的解决方案,NAS是一个解决思路,不过价格略贵,即便是双11活动的时候,最便宜的也得接近1000块,这还不算硬盘的价格。后来参考了一篇用路由器(OpenWrt系统)和移动硬盘来实现家庭存储的文章,决定试下用路由器+移动硬盘的方案。 OpenWrt是一个基于linux的嵌入式操作系统,你可以通过opkg来定制安装软件包,来获取你所需要的服务, 如aria2下载服务,DDNS服务,SMB共享文件服务等。它对路由器的硬件有一定的要求,所以首先得选择下合适的路由器。最后的软硬件选择为:

  1. 水星mw4530r 320
  2. 希捷1T移动硬盘 440
  3. 迅雷白金会员 90

路由是直接从taobao上买了刷好的系统,主要是为了超频和升级16M内存,后来才意识到软件其实可以安装在移动硬盘上,多花了70比较失败。水星的这款是支持2.4G和5.G双频的,实际使用没觉得有什么太大的区别。大概配置了如下的这些服务:

  1. ftp 服务, 用来从路由器外接的移动硬盘下载电影
  2. samba 文件共享服务, 用来在不用的电脑/系统间进行文件共享,直接选择共享文件去播放电影,偶尔有卡顿,还是下载到本机比较好
  3. aria2 下载服务,用来在路由器上下载文件,同时可以用迅雷离线进行远程下载
  4. ddns服务,动态路由,可以把路由绑定到域名上,这样就能在任何地方访问到我的路由器

大部分的服务比较容易配置,直接在Luci的web界面就可以配置了,还可以配置mDLNA的服务,这个只能等到去新房的电视机上测试了。这里只说几个稍微tricky点的设置。 动态路由:

  1. 申请花生壳动态域名, 如 myname.oicp.net
  2. 在DDNS配置页面中绑定你申请的动态域名
  3. ssh root@192.168.1.1, 修改/etc/config/uhttpdoption rfc1918_filter 1 修改为 option rfc1918_filter 0,允许openwrt 接受external的请求.
  4. 重启DDNS服务,/etc/init.d/ddns restart

离线下载:

  1. 申请离线下载,双十一的时候有活动,迅雷白金会员半价, 90块。还是比较超值的,离线空间大概有300多T,支持多种协议,如BT、磁力链接、ed2k等,基本上高清电影随便往进去扔。
  2. 在chrome下安装 迅雷离线助手 这个插件,可以帮助你直接导出aria2/aria2-rpc/wget/IDM/Orbit/YAAW下载。
  3. 安装完成后,登陆迅雷离线, 打开右上角设置,修改Aria2 json path 为 http://myname.oicp.net:6800/jsonrpc
  4. 点击任意一个资源下拉框,选择 yyaw导出,之后访问 http://myname.oicp.net/aria2,就可以看到正在下载的任务了。

国内云存储的选择很多,微云,115,百度云,华为网盘,迅雷离线空间等,存储空间都是以T为单位,大部分是不用付费的,每个云存储都有相应的客户端做同步。迅雷的价格最贵,但是它有几点好处:

  1. 离线空间更大,300T+,按照单部高清电影50G来计算,可以放6000部电影了,这辈子估计也看不完
  2. 资源丰富,很多时候,你可以发现,下载任务刚添加,就完成了,可以推测服务器上早就有这个资源了,凭借md5校验码来验证资源是否,存在的话,直接做个链接就可以了
  3. 迅雷做了很好的CDN,所以不管你的网络运营商是什么,电信、联通还是铁通,都可以做到峰值下载
  4. 迅雷云播,可以直接在电脑或者手机客户端上播放离线空间资源,还能自动匹配字幕

国家的版权控制越来越严格,可以想见的将来,资源的获取会更加困难,首先是音乐,因为目前音乐作品在网络上缺乏一个很好的渠道和商业模式去盈利,因此发行商或者利益相关者会盯的更紧些。电影则不然,清晰版的影片一般会在下映后或者更长时间才会出现,盈利不会受到很大影响。后来思考一番,多下载点影片和无损音乐在云端,路由接的移动硬盘除了放部分电影之类的话,也可以作为文档或者家里的视频照片等的存储空间。你可以使用samba或者ftp去上传文件,就是每次人工干预会略不爽,可以使用rsync做文件的同步,然后用crontab建个定时自动运行的任务就可以了。 大概的步骤是如下这样:

  1. 把你的public key 扔到openwrt系统上,openwrt使用的是一个比较轻量的ssl服务,叫做dropbear,所以ssh key放置的目录也不太一样。你可以直接run这条命令: cat ~/.ssh/id_rsa.pub | ssh root@192.168.1.1 "cat >> /etc/dropbear/authorized_keys”. 这样你ssh到openwrt的时候就不需要再输入密码.
  2. 安装rsync, opkg install rsync.
  3. 在pc端新建cron job,假设我希望每天晚上11点半同步所有dropbox里面的文件, 运行crontab -e,添加”30 23 * * * rsync -r ~/Dropbox/ root@192.168.1.1:/mnt/sda1/Dropbox/“, 保存即可

自己去搭建这么一套简单的家庭存储的解决方案的好处很多:

  1. 省钱,一场电影要30块,两个人一年看10次电影就差不多了。路由器的功耗很低,每小时只有几瓦,如果你开着一台PC去下载,一小时至少400w左右的功耗,从这个角度也节省了钱。
  2. 最大化利用带宽,压榨宽带资源。一个月的宽带费用要一两百,所以一定要做到物尽其用,在家人都上班的时候添加好任务,回家之后就可以观看电影,不会影响到家人去使用网络。
  3. 私人服务器。由于电信运营商对上行带宽的限制,从外部访问路由上的ftp下载服务比较慢,但是下载一些文档照片是足够了,上传的速度很快,所以如果你在旅游的时候拍的照片啊什么的,可以上传到服务器上,家人就可以在电视上看了。
  4. 可玩性高。可以在openwrt上安装使用的服务远不止此,比如使用摄像头进行监控服务,只要有无线摄像头连接上,可以随时监控家里的情况。13号baidu就要退出一款无线摄像头,价格只有99,非常之便宜。还有类似流媒体服务,在家庭多个位置放置无线音箱,在手机或者电视,pc上控制播放,很有趣。

当然,相比NAS,还是有些不足,比如:

  1. 单个USB移动硬盘无法做数据的备份,比如raid,如果硬盘出问题,数据可能丢失。
  2. 意外断电可能导致的设备损坏。

几年前我在TCL教育做实习的时候,他们已经开始做基于android的智能电视了,在互联网企业杀入这个市场后,家庭智能化趋势已经不可阻挡了,物联网真正的实现也近在眼前。其中智能电视,路由器和游戏机是几个比较关键的要素,国内的几家公司,比如小米,马上要推出的小米路由或者果壳等,比较值得关注。随着宽带计划提升到国家战略层面,访问敏感网站逐渐松绑,互联网带来的自由革命也即将到来。