打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
IT之家学院:在树莓派上搭建私有云存储

本篇的旨在最全面地介绍搭建网盘的整个过程,让没有Linux基础的小白们少走弯路,因此细节上多有赘述,老司机们请无视。最近国内的网盘们一个接一个地倒下,相信很多人不想忍受某网盘的限速,大家对私有云的需求越来越高。最简单和稳妥的解决办法当然还是购买群晖这样高性能、多功能的NAS,但动辄几千元的售价还是让许多人望而却步,市面上的私有云盘软件有诸如可道云、Nextcloud/ownCloud、Seafile等,这里IT之家来介绍如何用一块树莓派3B开发板搭建私有云存储。

先介绍一下本篇的主角——可道云

KodExplorer可道云,原名芒果云,是基于Web技术的私有云和在线文档管理解决方案,具有以下特点:

  • 轻量易部署

  • 适用性强,应用场景多

  • 高颜值、可定制

在体验了各家网盘后笔者选择了可道云,主要是第一眼就被他近似于Windows的操作界面吸引了,可道云不需要数据库,足够轻量,搭建简单,毕竟小小的树莓派机能实在是有限。对比ownCloud,可道云在树莓派上的性能表现要好太多。但也有像无移动客户端支持、同步不便、移动端网页版存在一些问题等不足。

aria2

aria2被众多网友视为下载神器,相信不少朋友都接触过,它是一款开源免费跨Win、Mac、Linux平台且不限速的多线程下载软件,具有速度快、体积小、性能强劲等特点。aria2支持HTTP / FTP / BT / Magnet磁力链接等类型的文件下载。

准备

  • 树莓派3B

  • 内存卡

  • 硬盘

  • 公网IP

  • 域名

为树莓派安装系统并启动登录

先去树莓派官网下载系统镜像

Download Zip下载压缩包,下载完成后解压,得到img镜像文件。

下载镜像烧录工具Win32DiskImager v0.9.zip并安装。

使用读卡器将内存卡连接电脑,运行Win32diskimager。

映像文件选择刚下载的img文件,设备选择内存卡盘符,然后选择写入,就开始安装系统了,安装完成后会弹出完成对话框。安装完成后在Windows系统看到内存卡只有74MB这是正常的,Windows看不到Linux下的分区。

然后在内存卡根目录下新建文件名为ssh的空白文件(没有后缀名),这样就能开启SSH服务登陆树莓派了。

将内存卡插入树莓派,用网线连接树莓派网口和路由器lan口,然后接上电源线。树莓派就开机了!

登陆路由器后台查看树莓派的内网IP

可以看到这里树莓派获取到的IP地址为192.168.2.6,记住这个地址

下载并安装PuTTY,安装完成后运行PuTTY。

将电脑和树莓派置于同一局域网,在主机名称中输入192.168.2.6,端口默认的22就可以,然后点击打开。这时会弹出安全警告,点是即可;之后输入用户名:pi;密码:raspberry(输入时密码不可见)就成功登陆树莓派了。

域名

大家可以在阿里云注册一个喜欢的域名,部分域名一年也就几块钱。至此准备工作就完成了。

搭建可道云

PuTTY登陆后为root用户设置密码,输入(PuTTY中单击鼠标右键粘贴):

sudo passwd root

会提示输入密码,然后确认输入密码(输入时密码不可见)。

输入如下命令就可切换到root用户:

su

我们先解除树莓派对root用户直接登陆的限制,编辑sshd_config文件:

sudo nano /etc/ssh/sshd_config

按Ctrl+W搜索PermitRootLogin,删除前面的#并把without-password改为yes:

PermitRootLogin yes

按Ctrl+O保存文件,Ctrl + X退出编辑然后重启树莓派:

reboot

安装Apache+PHP

使用root用户登录,先更新一下安装源:

sudo apt-get update

安装apache2和PHP:

sudo apt-get install apache2 php7.0 php7.0-curl php7.0-mbstring php7.0-gd

这时访问树莓派的IP就可以看到apache2的默认页了。

挂载硬盘

树莓派挂载NTFS硬盘默认是只读文件系统,我们可以通过其它工具实现,安装ntfs-3g:

sudo apt-get install ntfs-3gmodprobe fuse

接下来我们创建挂载点,我选择的挂载点在/media/pi/mo文件夹:

sudo mkdir /media/pi/mo

查看系统当前挂载的硬盘:

fdisk -l

我们会看到最下面有如下信息:

Device         Boot Start      End  Sectors  Size Id Type/dev/mmcblk0p1       8192    93236    85045 41.5M  c W95 FAT32 (LBA)/dev/mmcblk0p2      94208 62521343 62427136 29.8G 83 LinuxDisk /dev/sda: 464.8 GiB, 3899024998 bytes, 937766584 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0xa7cf32d1Device     Boot Start       End   Sectors   Size  Id  Type/dev/sda1        2048 334438655 937766584 464.8G  7 HPFS/NTFS/exFAT

其中/dev/sda1为这块硬盘的分区信息。下面我们就以Apache的默认用户www-data来挂载硬盘,输入如下命令来查看用户身份:

sudo -u www-data id

显示信息如下:

uid=33(www-data) gid=33(www-data) groups=33(www-data)

然后让硬盘能够自动挂载,编辑/etc/fstab:

sudo nano /etc/fstab

将如下内容添加到文件最后一行:

/dev/sda1 /media/pi/mo ntfs uid=33,gid=33,noexec,umask=007 0 0

这里uid和gid为用户和组,也就是上面我们查看到的信息;umask表示拒绝的权限,其中第一个数字为0。表示不拒绝任何权限,即可读、写、执行,第二、三个数字分别代表用户组和其他用户。按Ctrl+O保存文件,然后Ctrl + X退出编辑,重启后生效:

reboot

配置可道云

下载并解压可道云

cd /media/pi/mo/kodwget http://static.kodcloud.com/update/download/kodexplorer4.25.zipunzip kodexplorer4.25.zipchmod -Rf 777 ./*

配置apache:

nano /etc/apache2/sites-available/kod.conf

粘贴如下内容:

<VirtualHost *:80>ServerName kod.wumo.comServerAdmin abc@Outlook.comDocumentRoot /media/pi/mo/kod<Directory "/media/pi/mo/kod/">        Options FollowSymLinks        AllowOverride All         Require all granted</Directory>

注:这里将kod.wumo.com替换成你自己的用来访问云盘的域名。重启apache2:

sudo service apache2 restart

解析域名

我们先在路由器上配置端口转发,进入路由器管理后台,找到端口转发/端口映射这项,以我手里这台刷了老毛子的斐讯为例:服务名称随意;端口范围我这里填58080(图上是80,别管它),这个端口是可以任意的,它是我们通过域名访问树莓派上的web服务时使用的端口,你可以用其他端口但尽量避开80、443、8080这些端口,因为运营商会封禁这些web服务默认端口;内网IP:树莓派的内网IP;本地端口:80;这样我们就把对路由器58080端口的访问转移到树莓派的80端口了。这里我们也为aria2配置一条转发规则:将路由器的6800端口转发到树莓派的6800端口。

家庭宽带IP会经常改变,这里就需要动态域名解析。动态域名的功能大多数路由器都有,如果你不会的话可以参考这篇文章WinScpsoftether(提取码:uqgx)上传到树莓派根目录并解压:

tar -zxvf softether-vpnserver-v4.25-9656-rtm-2018.01.15-linux-arm_eabi-32bit.tar.gzcd /vpnserver./.install.sh./vpnserver start–Simplified Chinese

然后设置密码:

./vpncmd

输入1,后按三次回车,然后输入:

ServerPasswordSet

按照提示设置密码,然后下载并安装Windows端管理工具(在上面的网盘链接里),点击“新设置”添加连接文件。主机名填树莓派内网IP,端口:443,密码:你刚才设置的密码。

确定后选择“远程访问vpnserver”,然后一路确定,你就能看到分配到的动态解析的域名了,

记下这个域名,我的域名是阿里云注册的,进入阿里云控制台>我的资源>云解析DNS>你的域名,选择添加解析,

记录类型:CNAME;主机记录:配置apache时填写的域名(上文中我填的是kod);记录值:动态DNS分配的域名。

至此我们的私有云就搭建完成了!用浏览器访问http://你的域名:转发到树莓派的端口号就可以看到我们搭建的云盘了。效果如下:

本文就是用可道云内置的MD编辑器写的。

配置Aria2

这里aria2的配置参考这篇文章

安装Aria2

sudo apt-get install aria2

配置Aria2在/etc目录下创建aria2目录用来存放配置文件:

sudo mkdir /etc/aria2

创建空白的aria2.session文件:

sudo touch /etc/aria2/aria2.session

创建配置文件:

sudo nano /etc/aria2/aria2.conf

在该文件中输入以下内容:

# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置dir=/media/pi/mo/kod/data/User/admin/home/download# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16Mdisk-cache=32M# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc# falloc和trunc则需要文件系统和内核支持# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项file-allocation=none# 断点续传continue=true## 下载连接相关 ### 最大同时下载任务数, 运行时可修改, 默认:5max-concurrent-downloads=10# 同一服务器连接数, 添加时可指定, 默认:1max-connection-per-server=5# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载min-split-size=10M# 单个任务最大线程数, 添加时可指定, 默认:5split=10# 整体下载速度限制, 运行时可修改, 默认:0#max-overall-download-limit=0# 单个任务下载速度限制, 默认:0#max-download-limit=0# 整体上传速度限制, 运行时可修改, 默认:0#max-overall-upload-limit=0# 单个任务上传速度限制, 默认:0#max-upload-limit=0# 禁用IPv6, 默认:falsedisable-ipv6=true## 进度保存相关 ### 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0#save-session-interval=60## RPC相关设置 ### 启用RPC, 默认:falseenable-rpc=true# 允许所有来源, 默认:falserpc-allow-origin-all=true# 允许非外部访问, 默认:falserpc-listen-all=true# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同#event-poll=select# RPC监听端口, 端口被占用时可以修改, 默认:6800#rpc-listen-port=6800# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项rpc-secret=123456789# 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项#rpc-user=<USER># 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项#rpc-passwd=<PASSWD>## BT/PT下载相关 ### 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true#follow-torrent=true# BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999listen-port=51413# 单个种子最大连接数, 默认:55#bt-max-peers=55# 打开DHT功能, PT需要禁用, 默认:trueenable-dht=true# 打开IPv6 DHT功能, PT需要禁用#enable-dht6=false# DHT网络监听端口, 默认:6881-6999#dht-listen-port=6881-6999# 本地节点查找, PT需要禁用, 默认:false#bt-enable-lpd=true# 种子交换, PT需要禁用, 默认:trueenable-peer-exchange=true# 每个种子限速, 对少种的PT很有用, 默认:50K#bt-request-peer-speed-limit=50K# 客户端伪装, PT需要peer-id-prefix=-TR2770-user-agent=Transmission/2.77# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0seed-ratio=0.1# 强制保存会话, 即使任务已经完成, 默认:false# 较新的版本开启后会在任务完成后依然保留.aria2文件#force-save=false# BT校验相关, 默认:true#bt-hash-check-seed=true# 继续之前的BT任务时, 无需再次校验, 默认:falsebt-seed-unverified=true# 保存磁力链接元数据为种子文件(.torrent文件), 默认:falsebt-save-metadata=false

注1:rpc-secret=123456789,改为你自己的密码;

注2:aria2默认下载目录笔者放在了可道云管理员文件目录下的download文件夹,下载完成后打开可道云即可看到。

启动aria2

这里我们用www-data用户来运行aria2,先赋予配置目录可执行权限:

sudo chown -R www-data:www-data /etc/aria2

以www-data用户运行aria2:

sudo -u www-data aria2c --conf-path=/etc/aria2/aria2.conf

如果没有提示任何错误信息,那就按Ctrl+C停止上面的语句,以Daemon的形式,转为后台运行:

sudo -u www-data aria2c --conf-path=/etc/aria2/aria2.conf -D

做成系统服务:

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 INFO  case "$1" instart)    echo  "Starting aria2c ..."    sudo -u www-data aria2c --conf-path=/etc/aria2/aria2.conf -D;;stop)    echo  "Shutting down aria2c ..."    killall aria2c;;restart)     killall aria2c    sleep 3    sudo -u www-data aria2c --conf-path=/etc/aria2/aria2.conf -D;;esacexit

然后设置这个文件的权限:

sudo chmod 755 /etc/init.d/aria2c

测试服务是否可以启动:

sudo service aria2c start

添加aria2c服务自动运行:

sudo update-rc.d aria2c defaults

安装aria的web管理界面这里我们选择aria2-NG作为web管理界面创建目录:

mkdir /var/www/html/aria2

下载并解压aria2-NG:

cd /var/www/html/aria2 && wget https://github.com/mayswind/AriaNg/releases/download/0.3.0/aria-ng-0.3.0.zipunzip aria-ng-0.3.0.zip

配置apache:

nano /etc/apache2/sites-available/aria2.conf

输入以下内容:

<VirtualHost *:80>ServerName aria2.wumo.comServerAdmin qazqazqwer@Outlook.comDocumentRoot /var/www/html/aria2<Directory "/var/www/html/aria2/">        Options FollowSymLinks        AllowOverride All         Require all granted</Directory>ErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>

注:和上文一样把aria2.wumo.com替换成你用来访问aria2管理界面的域名。

ln -s /etc/apache2/sites-available/aria2.conf /etc/apache2/sites-enabled/aria2.conf

重启apache2:

sudo service apache2 restart

然后去阿里云把你用来访问aria2管理界面的域名的CNAME记录解析到动态域名上。用浏览器输入http://用来访问aria2管理界面的域名:外网端口(上文中我用的是58080)访问你的aria2。这里会显示认证错误:

到AriaNG设置>RPC>Aria2RPC密钥输入上文你设置的密码,然后重新加载页面:

这里就会显示已连接了。

这样我们就大功告成了~

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
折腾树莓派(三)使用ownCloud建立私有云
树莓派实现NAS家庭服务器
如何用树莓派搭建可视化的aria2挂机下载器 来自 Yyuzh
debian apache
Ubuntu中文论坛 ? 查看主题
yondy
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服