如果你家里有多台设备需要联网需要娱乐,你一定会或多或少遇到设备碎片化带来的烦恼。当然,已经有很多厂商包括新晋的小米、360在内的互联网公司做了这个事情,给你搞个家庭存储中心,基本能解决你的大部分需求。

但是,本着不折腾就会死的机翼安劲儿,咱自个来造个低成本低功耗的解决方案,成本680元,耗时2个小时左右。

NAS基础设施搭起来

材料:先要有Raspberry Pi/路由器/破电脑等能装Linux的设备,适当容量的移动硬盘或SATA硬盘;
原理:在运行Linux的设备上,挂载大容量硬盘,并利用Samba搭建NAS;
具体步骤之前有过教程,可移步:http://wemaker.cc/21;

至此,如果你是严格按照教程部署,你的NAS应该已经开始正常运转,iOS、Android、Windows、Mac等不同系统都有连接NAS服务器的应用,可自行度之。

变身双向同步云盘

NAS主要服务于同一局域网内的设备,如果你想将你的NAS打造成可以外网访问并进行数据同步的网盘,我们只需借助FTP+动态域名解析即可实现。

A、配置FTP服务

接下来,我们使用vsftpd来搭建FTP服务(VSFTPD是一个开源的轻量级FTP服务器程序),按照以下步骤进行配置:

sudo apt-get install vsftpd //安装vsftpd服务器 (约400KB)
sudo nano /etc/vsftpd.conf //编辑vsftdp的配置文件

在配置文件中找到以下行,并设定为对应值:

anonymous_enable=NO //表示不允许匿名访问
local_enable=YES //设定本地用户可以访问。
write_enable=YES //设定可以进行写操作
local_umask=022 //支持断点续传
sudo service vsftpd restart //重启vsftpd服务

OK,此时搭载有NAS的服务器也已经具备FTP服务,现在可以使用浏览器访问试试。此时,你的FTP依然只能在内网访问,我们需要借助动态域名解析服务实现外网访问:

B、外网访问设置(如果不需要外网访问,此步非必须)

如果你还没自己的域名,可以在网上申请各类免费得二级域名或直接在花生壳、3322上进行动态域名申请及配置。如果你有自己的域名,参照以下教程使用DNSPOD服务进行设置。先在DNSPOD注册并添加域名,然后将你的域名DNS配置为DNSPOD的。之后,在linux上进行脚本设定。确保你已经安装了Python环境,然后新建Py脚本,粘贴如下代码(Via e-fly):

#!/usr/bin/env python
#-*- coding:utf-8 -*-import urllib2,urllib,jsonclass Dns:#Dnspod账户_dnspod_user = '你的账户'#Dnspod密码_dnspod_pwd = '你的密码'#Dnspod主域名,注意:是你注册的域名_domain = 'cb.e-fly.org'#子域名,如www,如果要使用根域名,用@_sub_domain = '@'def getMyIp(self):try:u = urllib2.urlopen('http://members.3322.org/dyndns/getip')return u.read()except HTTPError as e:print e.read()return None;def api_call(self,api,data):try:api = 'https://dnsapi.cn/' + apidata['login_email'] = self._dnspod_userdata['login_password'] = self._dnspod_pwddata['format'] ='json'data['lang'] =  'cn'data['error_on_empty'] = 'no'data = urllib.urlencode(data)req = urllib2.Request(api,data,headers = {'UserAgent' : 'LocalDomains/1.0.0(roy@leadnt.com)','Content-Type':'application/x-www-form-urlencoded;text/html; charset=utf8',})res = urllib2.urlopen(req)html = res.read()results = json.loads(html)return resultsexcept Exception as e:print edef main(self):ip = self.getMyIp()dinfo = self.api_call('domain.info',{'domain' : self._domain})domainId = dinfo['domain']['id']rs = self.api_call('record.list',{'domain_id': domainId,'offset' :'0','length' : '1','sub_domain' : self._sub_domain})if rs['info']['record_total'] == 0:self.api_call('record.create',{'domain_id' : domainId,'sub_domain' : self._sub_domain,'record_type' : 'A','record_line' : '默认','value' : ip,'ttl' : '3600'})print 'Success.'else:if rs['records'][0]['value'].strip() != ip.strip():self.api_call('record.modify',{'domain_id' : domainId,'record_id' : rs['records'][0]['id'],'sub_domain' : self._sub_domain,'record_type' : 'A','record_line' : '默认','value' : ip})else:print 'Success.'if __name__ == '__main__':d = Dns();d.main()

将以上代码保存后,设定755权限,运行即可。如需要定时检测更新域名IP地址,可以将该脚本文件加入 /etc/crontab 进行定时执行任务。

至此,你的整个服务器已经同时具备了内网的NAS,以及内网和外网的FTP服务。接下来,开始在你的各类终端上进行双向网盘同步设置吧,本文以Android系统为例,其他系统的FTP同步教程请自行度之。

C、安卓手机数据同步

原理很简单,找一个FTP的App,指定手机某个文件夹(一般都是相册所在文件夹)自动同步到上文搭建好的NAS路径中。相比使用百度云等网盘同步,我们这样做的优势除了隐私性更强外,还能在本地WiFi网络内以极高的上行速率进行数据备份。

一处备份(从手机至NAS),多处共享(从NAS到Mac、PC、iPhone、iPad)。

本文以FtpSyncX安卓版为例进行设置:

第一步:添加服务器,点击Add server,选择FTP格式,设置好服务器地址(建议填入以上文中的额动态域名,如不需要填入内网IP即可),填写登录帐号和密码;
第二步:设置要同步的两端文件夹目录,选择Local Diectory设置手机上的文件夹,Remote directory设置NAS上对应的同步文件夹,建议新建一个。接下来设置同步类型,remote<=>local双向同步、remote=>local NAS到手机单向同步、 local=>remote 手机到NAS单向同步,根据需要进行选择。勾选上WiFi Only,只在WiFi下同步;

设定完成后开始同步看看效果吧。此软件还可以设定同步时间间隔等高级参数。

搭建完美下载机

看了小米路由宣称的1T硬盘和迅雷离线下载很心动?别急,咱也能。

Linux下可以实现BT下载的应用有很多,目前支持下载格式最多和最知名的是Aria2。相比以往的开源BT程序,Aria2不仅支持BT下载,还支持Http、Ftp、磁力链接等格式下载,当然,文章最后完美还附上了迅雷离线下载+Aria2的完美方案。

A、安装并配置Aria2

在Linux终端内执行以下命令安装Aria2程序:

sudo apt-get install aria2 //安装Aria2

接下来配置Aria2的配置文件,每行为一个单独命令:

mkdir ~/.aria2 //新建文件夹
touch ~/.aria2/aria2.session //新建session文件
nano ~/.aria2/aria2.conf //新建配置文件

在aria2.conf配置文件里粘贴以下代码,别忘记将里边的路径替换为自己的:

dir=/home/cubie/Download //下载的默认目录
disable-ipv6=true
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
#rpc-listen-port=6800
continue=true
input-file=/home/cubie/.aria2/aria2.session //路径要绝对路径
save-session=/home/cubie/.aria2/aria2.session //保存你的下载列表
max-concurrent-downloads=3

保存并执行以下命令:

aria2c –conf-path=/home/cubie/.aria2/aria2.conf

如果没有错误,Ctrl+C终止并继续下一步,把aria2做成系统服务:

sudo nano /etc/init.d/aria2c

粘贴内容如下:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          aria2
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Aria2 Downloader
### END INIT INFOcase "$1" in
start)echo -n "Starting aria2c"sudo -u cubie aria2c --conf-path=/home/cubie/.aria2/aria2.conf -D #sudo -u后面的是你正在使用的用户名,因为我用的cubie,别忘记改成自己的
;;
stop)echo -n "Shutting down aria2c "killall aria2c
;;
restart)killall aria2csudo -u cubie aria2c --conf-path=/home/cubie/.aria2/aria2.conf -D#同上面的一样,根据自己的用户名改cubie
;;
esac
exit

保存后退出,然后设置这个文件的权限为755:

sudo chmod 755 /etc/init.d/aria2c

测试Aria2服务是否可以启动:

sudo service aria2c start

如果只显示Starting aria2c,没有其他错误提示的话就说明成功了。然后添加aria2c服务到开机启动:

sudo update-rc.d aria2c defaults

由于Aria2不具备Web管理,所以需要使用第三方开发的开源程序Yaaw进行Web管理。先要确保你的Linux已经配置了Nginx或Apache等Web服务器环境,关于Nginx的配置可参考此文:http://wemaker.cc/59,此处不再累述。

进入Web服务的文件目录,以Nginx为例:

cd /srv/www
git clone http://github.com/wzhy90/yaaw

程序执行完成后,在浏览器中打开http://IP地址或域名地址//yaaw,即看到Aria2的Web管理界面,此时一个支持BT、FTP、HTTP、磁力等格式的下载机已在完美运转。点击右上角的设置项,在弹出的界面中找到Aria2 JSON-RPC Path,留好在下一步备用。

B、配置迅雷离线下载

这一步需要额外的程序支持,国内有高手开发出了Aria2结合迅雷离线的浏览器插件,本文以Chrome为例设置。

打开此链接,安装Chrome浏览器扩展程序,然后登录迅雷离线的Web站(需要会员),点击页面右上角的设置,在弹出的窗口中,找到Aria2 JSON-RPC Path项,将Yaaw中复制出来的URL粘贴进去并保存。接下来,试试在迅雷离线下一部片子,基本是秒下,然后点击“取回本地”旁的下拉按钮,在选项中选择Yaaw。回到你的Aria2 Web管理页,是不是已经有一项任务躺在里边了?

至此,大功告成。咱也过上了想什么时候下就什么时候下、想在哪下就再哪下、想下啥就下啥、想在哪看就再哪看、想怎么同步就怎么同步的性福生活。

推荐方案:树莓派B英国产+4G TF(255元)+ 1T硬盘 (400元) + 有源的USB Hub(25元)进行搭建,总成本680元左右。

预告:接下来会把树莓派替换为一个802.11ac双频可刷OpenWRT的路由器,将整体成本和能耗降到最低。敬请期待我们带来的路由器的解决方案。有了这神器,还等啥小米路由、360路由……

DIY一套NAS+私有云盘+下载机相关推荐

  1. 使用树莓派制作一套“NAS+私有云盘+下载机”

    ‍ ‍‍原创作者:HackLiu‍‍ ‍ 0×00 前言 ‍‍如果你家里有多台设备需要联网需要娱乐,你一定会或多或少遇到设备碎片化带来的烦恼.当然,已经有很多厂商包括新晋的小米.360在内的互联网公司 ...

  2. 本地搭建私有云盘设定:使用cpolar共享群晖NAS 5/5

    系列文章 本地搭建私有云盘:虚拟机安装群晖NAS 1/5 本地搭建私有云盘:安装Synology Assistant 2/5 本地搭建私有云盘:群晖系统存储空间设置 3/5 本地搭建私有云盘设定:设置 ...

  3. 个人家用nas_家庭私有云盘系列教程-本地搭建家庭NAS方案

    目前第三方云盘存在速度慢.限制多.取回难.费用高等各方面问题,这里进行本地搭建NAS方案,配置个人私有云盘前置基础,存储个人大量数据及共享分享给朋友使用. 硬件选配 这里不做多余阐述,参见知乎大佬答案 ...

  4. 联想私有云盘成功中标布丁酒店浙江股份有限公司云盘项目

    近日,联想私有云盘成功中标布丁酒店浙江股份有限公司云盘项目,联想私有云盘将为其提供安全.协同且高效的一站式数据统一管理平台. 项目背景及需求 布丁酒店隶属杭州住友酒店管理有限公司,为中国第一家时尚且概 ...

  5. linux搭建seafile_CentOS7+seafile搭建私有云盘测试过程记录

    CentOS7+seafile搭建私有云盘测试过程记录 2017-11-01 08:00:00 48点赞 339收藏 43评论 自从360云盘免费取消后,网上能用的免费并且比较方便的网盘几乎只有百度了 ...

  6. 使用ipv6内网穿透,实现私有云盘搭建,实现远程控制等功能

    文章目录 问题 获得计算机的ipv6地址 ipv6变化问题 解决-桌面远程控制 ipv6控制路由器 解决-私有云盘搭建 创建服务端B的环境配置 创建服务端可以访问的用户账户 配置服务器对ipv6地址访 ...

  7. 8T磁盘阵列文件存储服务器 威联通,NAS私有云老司机折腾体验记 篇八:QNAP 威联通TR-004磁盘阵列外接盒使用教程...

    NAS私有云老司机折腾体验记 篇八:QNAP 威联通TR-004磁盘阵列外接盒使用教程 2019-03-19 11:38:24 25点赞 232收藏 28评论 之前,为了追求极佳的笔记本使用体验,笔者 ...

  8. 本地搭建私有云盘设定:设置群晖共享文件夹以及cpolar 4/5

    系列文章 本地搭建私有云盘:虚拟机安装群晖NAS 1/5 本地搭建私有云盘:安装Synology Assistant 2/5 本地搭建私有云盘:群晖系统存储空间设置 3/5 本地搭建私有云盘设定:设置 ...

  9. linux 访问西数网盘,不买iCloud了,果粉福音:WD 西数 My Cloud Home 3TB 私有云盘 开箱体验...

    不买iCloud了,果粉福音:WD 西数 My Cloud Home 3TB 私有云盘 开箱体验 2018-05-29 20:04:35 25点赞 136收藏 47评论 虽然换了很多手机,但是自己的照 ...

最新文章

  1. poj1286(纯Polya定理)
  2. java 039 s rule_Java开发架构篇:DDD模型领域层决策规则树服务设计
  3. python中map函数字典映射_python Chainmap函数(19)
  4. 统计学习方法-第二章课后习题答案整理
  5. n个小球放入m个盒子中_飞么盒子卫生巾自助售卖机前景
  6. 30 WM配置-策略-出库策略3-定义后进先出策略L(LIFO)
  7. [置顶] 杂七杂八
  8. 方法二 、属性 CLR学习第九课
  9. 湖南对口招生计算机专业试卷,湖南省2018年普通高等学校对口招生考试计算机应用类综合试卷 参考答案...
  10. Protel入门教程
  11. 阿里云注册域名,购买云服务器,备案,域名解析图文教程
  12. 听说CDN高防和高防IP是服务器安全的“翘楚”,那么你知道这二者的区别吗?
  13. 非功能性需求基础概念
  14. 【Jquery-03】jq中的样式操作
  15. day26-多进程多线程
  16. FSK调制解调过程的matlab仿真
  17. 业务不间断重启-gr与nsr
  18. 兄dei,帮我开一下门吧~
  19. python键盘监听及模拟键盘输入keyboard
  20. 非对称加密算法SM2

热门文章

  1. 什么是基因测序,为什么需要云计算
  2. 榆熙电商:在拼多多开网店如何计算产品价格弹性区间?
  3. php header 生成pdf,使用PHP生成PDF文档
  4. Carson带你学Android:你要的WebView与 JS 交互方式都在这里了
  5. python 采集唯美girl
  6. 得链表者得天下(上)
  7. BLDC在3D风扇屏(全息风扇屏原理)上的应用----Trinamic(TMC)解决方案
  8. 家居网络营销:定制家具行业如何做好全网营销?
  9. 我要写整个中文互联网界最牛逼的JVM系列教程 | 「JVM与Java体系架构」章节:JVM的发展历程
  10. mac dreamveaver cc破解方法