前言:
学了一个学期的树莓派,在期末的时候老师给我们布置了一个基于树莓派的课程设计。自己的程序基础比较薄弱,就想着用现有的程序做一个课程设计,自己也是偶尔看见了有人用树莓派挂载硬盘给自己做的NAS。刚开始以为这个挺简单的,找一个教程,跟着做就行。但是到了我真正开始做的时候并没有那么简单,教程上一个简单的步骤有时候就是和自己的树莓派显示的不一样,自己又要花费大量的时间去解决这一个问题,自己也想过放弃,去找一个现成的小游戏程序水一下,但是自己又不想轻言放弃,想试试硬着头皮去做,使劲去肝,会不会做出来。在用了总共差不多三十多个小时后,“轻松”实现了在校园网的环境下用树莓派搭建私人云。
最简单实现的文件共享就是用samba的方式来实现,在PC端直接访问树莓派的IP地址就可以,类似于PC间的局域网文件夹共享,自己在尝试这一种方法时教程里说要挂载移动硬盘(PS:小白千万不要尝试挂载移动硬盘,因为如果配置错误的话,会让你的树莓派下一次开机进不了桌面,直接进紧急模式),然后在我重启的时候树莓派的系统就坏了,在尝试了N多种方法之后,还是重新装了系统。不过最后还是实现了用samba来实现,但是总觉得用PC的资源管理器的用很low,就去寻求别的方法。
在尝试了使用owncloud、nextcloud的解决方案之后,最终还是用cloudreve解决了网盘搭建的问题。想要在公网上实现访问树莓派的网盘,必须要经过服务器的转接才可以,无论是使用内网穿透(frp、花生壳内网穿透)(内网穿透就是在公网上某个地方访问某个网关的内网,外网穿透涉及国家相关法律,就不讲了)还是异地组网(蒲公英异地组网),就免费的功能来说宽带速度慢,有流量限制。但是用花生壳内网穿透,再加上用学生用户的免费功能,读存取文档够用了。下面就是我做私人云时遇到的问题和解决办法。(本教程更多的是踩雷和避坑吧)
一、树莓派系统的安装与配置 1.系统下载与安装
系统镜像下载推荐官方的下载地址(Operating system images – Raspberry Pi )
新手推荐下载第二个,首先要确认自己SD卡足够大,因为树莓派操作系统与桌面和推荐的软件这个版本的镜像解压后有9个多G,推荐使用32GB以上的SD卡。下载好镜像后,下载官方的烧录工具(Raspberry Pi OS – Raspberry Pi),根据自己电脑的系统下载
虽然网站时国外的,但是下载起来速度还是挺快的。这里要提醒的时要把镜像解压后烧录工具才能识别。
先不着急烧录,右下角的小齿轮后,在里面先简单配置一下,推荐在这个里面配置好树莓派的WiFi,这样可以在系统装好后避免一些不必要的麻烦(比如说开机打不开WiFi开关)。
配置好WiFi后,点击烧录,树莓派开始烧录。可能需要二三十分钟(根据你选择的系统镜像有关),镜像会在SD卡烧录一遍,还要再校验一遍,可以先去吃个饭或者看一集《蜡笔小新》。
2、配置VNC将树莓派连接显示器后,进入系统后,改一下系统语言为中文((16条消息) 树莓派(Raspberry Pi)如何修改成中文_meihualing的博客-CSDN博客_树莓派设置中文)。
返回桌面,如下图,依次打开 菜单(Menu) > 首选项(Preferences) > Raspberry Pi Configuration:
点击 Interfaces 栏,选择“enable” VNC服务。如下图:
在这个页面也可以打开别的功能,推荐一并打开ssh。
VNC的功能就是可以让树莓派上的桌面可以显示在你的电脑或者手机上,不仅有桌面的应用,也是有安卓版和ios版本的,可以很方便的在平板设备上使用。
Download VNC Viewer | VNC® Connect (realvnc.com)https://www.realvnc.com/en/connect/download/viewer/
在打开VNC后,在树莓派的右上角就会有VNC服务的标志,打开之后就可以看到自己树莓派的IP地址,记住自己树莓派的IP地址,之后的操作还要用到。
3、更换国内软件源在电脑上操作树莓派,可以很方便的复制粘贴很多代码
如果你的树莓派连接的是手机热点,但是在手机上的已连接设备管理中又看不到树莓派的ip地址的话,可以在手机上下载android terminal(安卓命令行)。安装好之后输入
ip neigh第一行 wlan0 是手机自身外网ip地址,后面的就是链接到手机的热点设备的ip地址。
建议如果使用手机热点连接树莓派的同学不要设置静态ip,在你的手机热点重新打开之后,手机热点的ip地址网段就会发生变化,会导致使用VNC连接不上。所以我上每节课都是使用android terminal来查看树莓派的ip地址,然后使用VNC连接,这样就可以不用借助显示器来查看IP地址。
因为系统默认的软件源是在国外的服务器,下载软件速度感人,实在不可恭维。国内有学校或者企业把国外的软件源服务器给镜像了一份,比如说清华大学(清华源)、阿里巴巴(阿里源)。在这里我们使用清华源。
换源之前要检查一下自己的系统版本
lsb_release -a #查看系统版本
我这里的系统版本是11 bullseye
deb http://mirrors.aliyun.com/raspbian/raspbian/ bullseye main non-free contrib rpi deb-src http://mirrors.aliyun.com/raspbian/raspbian/ bullseye main non-free contrib rpi
然后就搜索自己系统版本对应的软件源 (这里我用bullseye做例子)
编辑 /etc/apt/sources.list 文件,这里推荐就用系统自带的 nano 命令编辑,命令如下:
sudo nano /etc/apt/sources.list
进入编辑界面,注释原有的内容,再最下面一行粘贴如下内容:
deb [arch=armhf] http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi
更新/etc/apt/sources.list.d/raspi.list
sudo nano /etc/apt/sources.list.d/raspi.list
注释之前的,然后追加
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main
更新软件索引清单和比较索引清单更新依赖关系(依次执行下面两天命令)
sudo apt-get update sudo apt-get upgrade -y
执行这两条命令可能要花费二十多分钟,可以再看一集《蜡笔小新》。
(在每次换源之后必须得执行更新软件索引清单和依赖关系,树莓派才能正确读到你输入的安装软件的命令。如果在第一次更新出错不要着急,多试几次。)
这里再编辑list文件时候使用的是nano文本编辑器,在树莓派中同样还有vi和vim的文本编辑器。nano文本编辑器简单好用,比较贴近Windows的使用习惯,推荐新手使用。在nano文本编辑器中,复制是ctrl+shift+C,粘贴是ctrl+shift+V。
到这里,树莓派的系统算是部署成功了。
二、部署Cloudreve的依赖文件 1、安装apache2# 安装命令 $ sudo su $ apt-get install apache2
安装完成后配置https强跳转。先到freessl中申请公钥和秘钥
$ cd /etc/apache2/sites-available $ nano default-ssl.conf # 修改监听端口、文件目录地址和公私钥的地址2、安装phpDocumentRoot /var/www/html/nextcloud SSLCertificateFile /etc/apache2/ssl/full_chain.pem SSLCertificateKeyFile /etc/apache2/ssl/private.key $ cp sites-available/default-ssl.conf sites-enabled/ # 修改80强跳到4433 $ nano 000-default.conf RewriteEngine on RewriteCond %{SERVER_PORT} !^4433$ RewriteRule ^/?(.*)$ https://%{SERVER_NAME}:4433/$1 [L,R] $ mv 000-default.conf ../sites-enabled/ # 修改监听端口 $ cd ../ $ nano ports.conf Listen 80 Listen 4433 Listen 4433 # 开启重写 $ a2enmod rewrite $ a2enmod ssl $ systemctl restart apache2
$ apt-get install php libapache2-mod-php -y $ apt-get -y install php-fpm php-cli php-json php-curl php-imap php-gd php-mysql php-xml php-zip php-intl php-imagick php-mbstring -y3、安装mariadb
# 安装命令 $ sudo su $ apt-get install mariadb-server -y # 开启远程登录权限 $ cd /etc/mysql/mariadb.conf.d # 找到修改权限的文件 $ grep -rn "skip-networking" * 50-server.cnf:26:# Instead of skip-networking the default is now to listen only on $ nano 50-server.cnf # 注释掉 bind-address = 127.0.0.14、修改数据库配置
# 直接回车 不需要输入密码 $ mysql -uroot -p > create database nextcloud; > CREATE USER 'oc_admin'@'%' IDENTIFIED BY 'password'; > GRANT ALL PRIVILEGES ON *.* TO 'oc_admin'@'%' WITH GRANT OPTION; > flush privileges; > CREATE USER 'oc_admin'@'localhost' IDENTIFIED BY 'password'; > GRANT ALL PRIVILEGES ON *.* TO 'oc_admin'@'localhost' WITH GRANT OPTION; > flush privileges;三、部署Cloudreve 1、安装cloudreve
用树莓派打开下载链接
https://github.com/cloudreve/Cloudreve/releases打开后下载如图所示
下载后,在树莓派的/home/pi/Downloads 中找到下载好的文件,选中后右键,提取文件到此处。
在命令行中输入
#进入文件夹 cd /home/pi/Downloads
进入文件夹后打开程序
打开该程序 ./cloudreve
然后就会出现下图情况
记录好上面出现的信息,里面有管理员账户和密码。以及端口地址5212。这个时候就说明程序已经开始运行了。运行后就不要再关闭这个窗口,如果关闭这个窗口,那么程序的服务也就停止了。
此时就可以使用连接在同一网关的设备在浏览器中输入树莓派的IP地址加端口号来访问网盘。
2、配置Cloudreve在同一局域网下,在电脑浏览器输入树莓派的IP地址+端口号,就可以访问cloudreve的主界面了。
四、内网穿透1、安装花生壳我们使用的内网穿透使用的是花生壳内网穿透,认证学生用户赠送青春版服务,满足小文件的存取。
用电脑浏览器打开花生壳内网穿透的官网
花生壳客户端官方下载 - 贝锐花生壳官网 (oray.com)
找到树莓派的安装下载链接
在命令行打开
wget "https://dl-cdn.oray.com/hsk/linux/phddns_5.1.0_rapi_armhf.deb" -O phddns_5.1.0_rapi_armhf.deb
这里推荐下载32位版本的,因为大多数树莓派都是32位版本,为了不必要的麻烦就不要下载64位版本的。
此时会有下载进度,等待进度走完。
切换到root用户
sudo -s
使用dpkg命令安装花生壳
dpkg -i phddns_5.1.0_rapi_armhf.deb
安装好后会出现以下文件说明安装成功
此时需要保存好出现的这些信息,自此花生壳安装成功。
2、配置花生壳用电脑浏览器打开
http://b.oray.com
打开后点击SN码登录
默认密码就是admin
进入网站绑定好你认证过的账户,点击内网穿透->新增映射
你可以修改你的应用名称,外网域名不能修改,点击一下使用默认的。内网主机中添加你树莓派的IP地址,内网端口使用默认的5212,然后点击确认就可以了。可以使用诊断来测试你的内网穿透服务有没有开启。
自此,整个Cloudrerv私人云盘搭建完成了,可以用在同班同校同学之间互相传输文件,分享大文件,保存一些教学资料。也可以用公网进行访问,进行一些小文档的存取操作,可以共享办公室电脑和家里电脑的word文档。
五、不足与改进 1.用户的隐私得不到保证用树莓派的文件管理器可以直接读取到用户储存的文件,不适合存放比较私密的文件。改进的方法只有开发者加入加密算法,但是碍于树莓派的性能,基本实现不了。
2.树莓派重启后需要重新配置在树莓派每次重启之后,都要连接显示器打开并且运行cloudreve主程序,并且用树莓派认证校园网页面。这种问题的解决办法只有让树莓派7*24小时运行。



