如何在树莓派上搭建私有云存储

如何在树莓派上搭建私有云存储

首页游戏大全SCP生物模组更新时间:2024-05-09

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

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

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

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

aria2

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

准备

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

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

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-3g modprobe 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 Linux Disk /dev/sda: 464.8 GiB, 3899024998 bytes, 937766584 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xa7cf32d1 Device 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/kod wget http://static.kodcloud.com/update/download/kodexplorer4.25.zip unzip kodexplorer4.25.zip chmod -Rf 777 ./*

配置apache:

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

粘贴如下内容:

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

sudo service apache2 restart

解析域名

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

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

tar -zxvf softether-vpnserver-v4.25-9656-rtm-2018.01.15-linux-arm_eabi-32bit.tar.gz cd /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以上版本, 默认:16M disk-cache=32M # 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc # falloc和trunc则需要文件系统和内核支持 # NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项 file-allocation=none # 断点续传 continue=true ## 下载连接相关 ## # 最大同时下载任务数, 运行时可修改, 默认:5 max-concurrent-downloads=10 # 同一服务器连接数, 添加时可指定, 默认:1 max-connection-per-server=5 # 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M # 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载 min-split-size=10M # 单个任务最大线程数, 添加时可指定, 默认:5 split=10 # 整体下载速度限制, 运行时可修改, 默认:0 #max-overall-download-limit=0 # 单个任务下载速度限制, 默认:0 #max-download-limit=0 # 整体上传速度限制, 运行时可修改, 默认:0 #max-overall-upload-limit=0 # 单个任务上传速度限制, 默认:0 #max-upload-limit=0 # 禁用IPv6, 默认:false disable-ipv6=true ## 进度保存相关 ## # 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0 #save-session-interval=60 ## RPC相关设置 ## # 启用RPC, 默认:false enable-rpc=true # 允许所有来源, 默认:false rpc-allow-origin-all=true # 允许非外部访问, 默认:false rpc-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=

注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" in start) 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 ;; esac exit

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

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.zip unzip aria-ng-0.3.0.zip

配置apache:

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

输入以下内容:

注:和上文一样把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密钥输入上文你设置的密码,然后重新加载页面:

这里就会显示已连接了。

这样我们就大功告成了~

以上就是本次教程的全部内容,更多常识科普、实用教程,敬请关注IT之家极客学院。

想看到更多这类内容?去APP商店搜IT之家,天天都有小欢喜。

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved