树莓派搭建家庭DAS服务器,实现自动下载

配置树莓派
挂载
配置树莓派
树莓派
文件共享功能
准备硬盘
安装和配置samba
映射至本地
自动下载功能
安装并配置aria2
启动

本文主要介绍了树莓派购买后的配置方法,并通过samba以及aria2简单搭建带有下载功能的家庭nas服务器。尽量详细分解了各个流程,适合跟做,事半功倍。


需要提前准备的材料:
  1. 树莓派1/2/3型 开发板(我用的是3B+),适配的5V2A电源;
  2. TF卡(不小于4G),TF 读卡器;
  3. 一块移动硬盘,最好再配个有源USB-Hub;
  4. TF镜像。找到对应Pi的型号的镜像,这里提供一个已开启SSH等各种功能的镜像:
    下载链接:https://pan.baidu.com/s/16erz8pZ6yjPVyPjoU_lkwQ
    提取码:ilpo
  5. 磁盘格式化工具SDFormatter:
    下载链接:https://pan.baidu.com/s/12VaGB3daeowpgqZRClmbvg
    提取码:hq77
  6. 镜像读写工具 win32diskimager:
    下载链接:https://pan.baidu.com/s/184oU57y0Oqq8nqiksP0HPg
    提取码:jf53
  7. 一台计算机,Windows系统;
  8. 远程SSH 本文以Xshell为例;
  9. 一台显示器或都电视机,HDMI接口,HDMI线。(其实不用显示设备也可以,通过SSH操作)。

一、 配置树莓派

1. 写入镜像

将SD卡插入读卡器连接电脑,运行 SDFormatter.exe 对SD卡进行格式化后,打开 Win32DiskImager.exe 烧写镜像,点击“Write”,完成后把SD卡插入树莓派。

2. 连接WIFI与SSH

(1) 树莓派通电开机,进入主界面,右上角连接WIFI

(2) 固定IP

由于我们日常都是使用ssh来开发跟管理树莓派,偶尔用一下远程桌面,但是路由器的DHCP服务器经常会给树莓派分配不同的IP地址,每次登录路由器查看比较麻烦,因此需要将树莓派的IP地址设置为固定IP。

使用浏览器登录路由器,在地址栏输入:192.168.1.1,然后回车,默认的账号密码都是admin,将IP与MAC绑定。

(3) 连接SSH

打开Xshell,点击右上角:文件—>新建—>连接—>主机处输入树莓派IP地址—>用户身份验证—>用户名:pi—>密码:yahboom(默认)—>确定

至此,之后的操作全部可以在Xshell中完成。


二、 安装samba实现文件共享

1. 准备硬盘

(1)安装软件,实现硬盘读写功能
#更新
sudo apt-get update#安装所需软件包
sudo apt-get install ntfs-3g#加载内核模块
modprobe fuse
(2)将硬盘插入树莓派USB接口,查看硬盘的设备目录
sudo fdisk -l

通常是/dev/sda1,查看已连接的储存设备,可以看到/dev/sda1,比对存储大小后确认设备目录。

(3)挂载硬盘
# 创建要挂载的文件夹并修改权限
sudo mkdir /samba
sudo chmod 777 /samba
# 挂载硬盘
sudo mount -t ntfs-3g /dev/sda1 /samba
(4)实现开机自动挂载到指定目录
# 编辑fstab让移动硬盘开机自动挂载
sudo vim /etc/fstab
# 在最后一行添加如下内容
/dev/sda1 /samba ntfs-3g defaults,noexec,umask=0000 0 0
# 查看挂载情况
df -h


可以看到932G的移动硬盘已经成功挂载在samba目录下。

2. 安装和配置samba

有关samba的配置详解与常用命令格式,可 参见此处

# 安装
sudo apt-get install samba samba-common-bin
# 配置
sudo vim /etc/samba/smb.conf

在文件最后面添加:

[share]                                   #共享文件的名称,将在网络上以此名称显示path = /samba                     #共享文件的路径browseable = yes                  #允许浏览public = yes                      #共享开放writable = yes                    #可写guest ok=yes                      #允许访客
出于安全考虑,还可以选择加入以下:security = user                   #局域网的人访问你的电脑都需要用户名和密码security = share                  #无需密码
添加用户并设置密码命令:
sudo useradd <username> -m -G users
sudo passwd  <username>
# 重启samba
sudo /etc/init.d/samba restart
# 把用户加入Samba中
sudo smbpasswd -a <username>
# <username>处将前面出于安全考虑新建的账户加入,如无需考虑安全问题,建议用 pi 作为<username>

当然, < username > 是否需要写取决于是否处于root权限下

# 设置开机自启(同硬盘自启)
sudo vim /etc/rc.local、
# 添加下面内容
sudo /etc/init.d/samba restart

3. 映射至本地

我的电脑—>映射网络驱动器—>任意盘符(有默认,无需修改):\\树莓派IP地址\share
注意斜杠个数与方向,IP地址斜杠后填写smb.con配置文件中[ ]自定义的共享文件的名称。

如果具体地址不清楚,可以在网络列表中找到相应设备,再把设备名改为设备的固定内网IP地址,输入到映射网络驱动器的地址中去添加映射。


三、安装aria2实现自动下载

# 安装aria2
sudo apt-get install aria2
# 开始配置
cd ~
# 前往挂载硬盘目录
cd /samba
# 创建aria2目录
mkdir aria2 && cd aria2
# 创建缓存文件
touch aria2.session
# 创建修改配置文件
vim aria2.conf

在aria2.conf中输入以下内容:

#允许rpc
enable-rpc=true
#允许所有来源, web界面跨域权限需要
rpc-allow-origin-all=true
#允许非外部访问
rpc-listen-all=true
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=20
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=5
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数, 路由建议值: 5
split=10
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=30K
#单文件速度限制
max-upload-limit=0
#断开速度过慢的连接
#lowest-speed-limit=0
#验证用,需要1.16.1之后的release版本
#referer=*
input-file=/samba/aria2/aria2.session
save-session=/samba/aria2/aria2.session
#定时保存会话,需要1.16.1之后的release版
save-session-interval=60
#文件保存路径, 默认为当前启动位置**********(在挂载硬盘的目录内创建download文件夹保存下载文件)
dir=/samba/download
#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本
#disk-cache=0
#另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)
#enable-mmap=true
#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
#所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持
file-allocation=prealloc
#启用本地节点查找
bt-enable-lpd=true
#单种子最大连接数
#bt-max-peers=55
#强制加密, 防迅雷必备
#bt-require-crypto=true
#当下载的文件是一个种子(以.torrent结尾)时, 自动下载BT
follow-torrent=true
#BT监听端口, 当端口屏蔽时使用
#listen-port=6881-6999
disable-ipv6=true
log=/samba/aria2/aria2.log
log-level=notice
#添加额外的tracker
bt-tracker=
http://121.14.98.151:9090/announce,
http://121.14.98.151:9090/announce,
http://anisaishuu.de:2710/announce,
http://bigfoot1942.sektori.org:6969/announce,
http://bt.careland.com.cn:6969/announce,
http://bt2.careland.com.cn:6969/announce,
http://exodus.desync.com/announce,
http://exodus.desync.com:6969/announce,
http://hdreactor.org:2710/announce,
http://i.bandito.org/announce,
http://open.nyaatorrents.info:6544/announce,
http://shadowshq.yi.org:6969/announce.php,
http://siambit.org/announce.php,
http://tracker.bestxl.com:8077/announce,
http://tracker.nwps.ws:6969/announce,
http://tracker.trackerfix.com/announce,
http://tracker.trackerfix.com:80/announce,
http://tracker1.torrentino.com/announce,
http://tracker1.wasabii.com.tw:6969/announce,
http://tracker2.torrentino.com/announce,
http://tracker3.torrentino.com/announce,
udp://12.rarbg.me:80/announce,
udp://9.rarbg.com:2710/announce,
udp://9.rarbg.me:2710/announce,
udp://bt.rutor.org:2710,
udp://coppersurfer.tk:6969/announce,
udp://eddie4.nl:6969/announce,
udp://exodus.desync.com:6969,
udp://explodie.org:6969/announce,
udp://open.demonii.com:1337,
udp://open.demonii.com:1337/announce,
udp://shadowshq.yi.org:6969/announce,
udp://tracker.coppersurfer.tk:6969/announce,
udp://tracker.ex.ua:80/announce,
udp://tracker.istole.it:6969,
udp://tracker.istole.it:80,
udp://tracker.istole.it:80/announce,
udp://tracker.istole.it:80/announcea,
udp://tracker.leechers-paradise.org:6969/announce
# 启动
aria2c --conf-path=/samba/aria2/aria2.conf
# 后台启动
aria2c --conf-path=/samba/aria2/aria2.conf -D# 添加开机启动
sudo vim /etc/rc.local
# 添加下面内容
sudo aria2c --conf-path=/home/pi/samba/aria2/aria2.conf -D
# 退出后添加可执行权限
sudo chmod +x /etc/rc.local

–conf-path= 后面的路径为 aria2.conf 配置文件的绝对路径。

${HOME} 表示 /Users/用户名,此处无需使用。

启动后可以通过该网站进行管理,亦可下载yaaw的Chrome插件或者使用命令行的方式进行下载使用。

http://webui-aria2.ghostry.cn/


下载任意文档测试,正常运行,即已实现自动下载功能。


四、写在最后的话

至此,DAS服务器以及全部搭建完成,考虑到开发板长时间启动,建议加装散热风扇及外壳,按此方法完成DAS服务器搭建后树莓派重启后仍可以正常运行,无需更多操作;

此外,针对移动设备访问,苹果用户可以在App Store下载「FileExplorer」或「nPlayer」来访问局域网中的共享文件;安卓用户可以下载「ES文件浏览器」来访问局域网的共享文件夹;


最后,如果还有兴趣了解如何在互联网环境下,基于Nextcloud,挂载Google drive,搭建Aria2+AriaNg,实现在线下载BT磁链/在线观看/全功能文件管理/无限容量云盘点击此处阅读


参考:
1: https://www.jianshu.com/p/308fb22a7dab
2: http://aria2c.com/usage.html
3: https://www.linuxprobe.com/how-pai-nas.html
4: https://www.bilibili.com/video/av19369685
5: https://blog.csdn.net/zhangjianying/article/details/74937378
6: https://www.linuxprobe.com/how-pai-nas.html
7: https://segmentfault.com/a/1190000016097376
8: https://www.cnblogs.com/tanhangbo/p/4282597.html

【树莓派】从零搭建DAS服务器,挂载扩容硬盘,实现文件存储与自动下载相关推荐

  1. 腾讯云服务器挂载云硬盘

    腾讯云服务器挂载云硬盘 1.到腾讯云服务器购买一块云硬盘,然后直接挂载到你的服务器下就可以了,如果服务器不能识别,请看部分存量云服务器无法识别弹性云盘的解决方法 2.挂载完云硬盘之后,云硬盘默认处于未 ...

  2. Win11如何搭建FTP服务器以实现快速传输文件?

    Win11如何搭建FTP服务器以实现快速传输文件?## Win11如何搭建FTP服务器以实现快速传输文件?相信大家在工作或生活的过程中,都会碰到需要传输大文件的情况,像U盘.QQ文件传输助手等工具显然 ...

  3. Win10如何搭建FTP服务器以实现快速传输文件

    Win10如何搭建FTP服务器以实现快速传输文件?相信大家在工作或生活的过程中,都会碰到需要传输大文件的情况,像U盘.QQ文件传输助手等工具显然满足不了大文件的传输需求,传输速度非常非常的慢.很多时候 ...

  4. linux挂载wondiws目录,linux cifs自动挂载windows硬盘或文件夹

    1.在要挂载的windows系统中找到需要挂载的硬盘或者文件夹,把它设置为共享 例如:在D盘下建立文件夹shared,设为共享 2.在linux系统/mnt目录下创建一个文件夹 #mkdir /mnt ...

  5. 从零搭建nginx服务器

    本文开始从零搭建一个nginx网页服务器. 1.最小化安装linux(web服务器需要纯净的环境) 2.局域网环境(环境限制,需要搭建本地包配置环境) 3.配置安装nginx环境 1.搭建系统 物理系 ...

  6. 保姆级教程从零搭建云服务器(小彩蛋,请大家看烟花秀)

    笔者已从零搭建好云服务器,在文章开始笔者请大家看一场简单的烟花秀,该篇博文是写给小白的保姆级教程,不论是有基础还是没基础的,都可以根据本篇博文,轻松搭建个人云服务器. 烟花秀:浏览器直接输入ysw.w ...

  7. java red5 点播_树莓派实用RED5搭建流媒体服务器实现点播功能

    1,搭建流媒体服务器一直是自己想玩的一个东西,在高中玩workerman框架时有人就做过nginx通过rtmp模块搭建流媒体服务器,nginx的特性就是高并发,轻量级,一般大型企业都会采用这个服务器, ...

  8. 从零搭建Linux服务器以及部署Web项目指南

    在Web项目开发中,服务器搭建是非常重要的,同时部署web项目也是经常需要进行的事情,下面对一系列流程工作进行阐述. 1.搭建服务器 可以购买或者自行搭建 首先需要一台服务器,在服务器中安装好Cent ...

  9. Linux从零搭建Minecraft服务器

    本文来自我的个人博客,欢迎大家访问关注: MickeyMiao 搭建一个属于自己的minecraft服务器是我从初中开始就有的梦想,但奈何高考之前,我都没有被父母允许玩电脑,更别说有机会搭建minec ...

  10. 腾讯云服务器挂载云硬盘数据盘并初始化云硬盘

    在腾讯云后台挂载云硬盘 进入CVM或者Lighthouse管理,这里以Lighthouse为例.选中数据盘,选择实例并挂载,大约需要1分钟. 手动挂载云硬盘后,云硬盘为脱机状态,需登录实例完成初始化操 ...

最新文章

  1. CSS属性选择器和部分伪类
  2. ubuntu18.04下编译mysql5.7源码
  3. Nginx-05:Nginx配置实例之反向代理2
  4. php 加入日志功能,php怎么写一个日志功能的函数
  5. oracle多条件分组统计_多条件统计,就必须用Ifs系列函数,绝对的高能!
  6. 02-css的选择器
  7. mysql数据库的存储过程不用学吗,MySql数据库之存储过程学习_MySQL
  8. ArcGIS License Server Administrator 10.2 无法启动许可的解决办法
  9. bzoj 2429: [HAOI2006]聪明的猴子(最小生成树)
  10. 删除电脑中用强制删除不能删除的bat命令脚本
  11. 【已解决】vue项目地址栏的图标不显示
  12. 穷举(一):穷举法的基本思想
  13. 全线路IC闭环控制自动温控电热毯维修记
  14. thinkadmin模板渲染与赋值
  15. HaaS学习笔记 | 阿里云物联网平台的产品和设备创建明细教程
  16. 【量化投资】策略二(聚宽)
  17. Adobe Reader PDF阅读器闪退问题解决(批处理)
  18. 《802.11无线网络权威指南》摘录
  19. Python使用ffmpy将amr格式的音频转化为mp3格式
  20. Springboot毕设项目宠物服务平台rx4i0java+VUE+Mybatis+Maven+Mysql+sprnig)

热门文章

  1. 尝试Ajax数据爬取微博
  2. python基础之logging模块
  3. Unknown host ‘dl.google.com‘ You may need to adjust the proxy settings in Gradle的解决方案
  4. html桌面共享文件夹,win7共享文件夹在哪? win7和win10怎么共享文件夹
  5. 【LLS-Player】ninja : rtdSDK构建
  6. 使用python lxml库中的xpath、etree爬取网页超链接
  7. 进化树软件ete3报错记录
  8. java将bmp文件转为jpg_在PHP中将BMP转换为JPG
  9. python计算决策树误差_《统计学习方法》第五章决策树 练习题解答
  10. 虎胆熊威2中文版体验