基于树莓派4B+Debian-PI+KodExplorer+Aria-Pro搭建的私人云盘
<p>本文分为上下两部分,上为本地云盘搭建教程,下为内网穿透教程</p><p>最开始打算直接用 Raspbian 的,不给打算尝试下不同的固件,因为在服务器上长期使用 CentOS ,所以打算试试树莓派版,但是只有华为有一个镜像</p>
<div class="cnblogs_code">
<pre>http:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">mirrors.huaweicloud.com/centos-altarch/7.8.2003/isos/armhfp/</span></pre>
</div>
<p>在尝试后发现有些问题,于是再度寻找,然后找到了一个叫 Debian-Pi 的系统,有 64 位版本,其中 web 加强版集成了 web 管理页面、 docker 、 CeCOS-CaaS 、 bbr ,如果重装系统,需要部署的工具就更少,更加方便,官方宣称的文件读写速度也优化过,不过稳定性和兼容性尚待检验</p>
<div class="cnblogs_code">
<pre>https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/openfans-community-offical/Debian-Pi-Aarch64</span></pre>
</div>
<p>截止 2020-10-02 ,最新的 plus++ 版本(即 web 加强版)为 2020-06-22-U4 ,直接下载压缩包并解压,解压后的 img 镜像文件约有 4G 大小,选择一张 C10 速度起步的 tf 卡,建立一个空白分区并格式化为 fat32 格式(或其他可以被 win32diskimager 识别的格式),然后使用 win32diskimager 刷入固件,完成后插入树莓派开机,需要等待几分钟时间完成初始化</p>
<p> </p>
<p><span style="font-size: 18pt"><strong>基础设置</strong></span></p>
<p>自带的 WebUI 有三,但是因为 ssh 可以用软件连接,所以只需要用到 9090 端口的后台 gui 和 8443 端口的 cecos 工具,笔者因使用命令行操作,所以直接用网线直连,在路由器中找到树莓派对应的 ip ,带上端口号进入后台,用户名和密码为 pi 和 raspberry ,进去后设置 root 账号密码,并去掉锁定, pi 账户的密码可以在后台修改也可以用命令行修改,命令在 readme 里面有介绍,笔者选择在后台修改</p>
<p>然后使用 ssh 工具登录,初始用户密码为 pi 和 raspberry ,进去后修改密码</p>
<div class="cnblogs_code">
<pre>passwd</pre>
</div>
<p>然后切换到 root 账户</p>
<div class="cnblogs_code">
<pre>su root 或者 sudo -i</pre>
</div>
<p>winscp如要在root权限下操作需要在【高级-环境- SFTP - SFTP 服务器】中将默认改为下文</p>
<div class="cnblogs_code">
<pre>sudo su -c <span style="color: rgba(255, 0, 0, 1)">/usr/lib/sftp-server</span></pre>
</div>
<p>其中路径可以在命令行中查询到</p>
<div class="cnblogs_code">
<pre>whereis sftp-server</pre>
</div>
<p>然后禁用ipv6,当然可以不禁用,因为有些原因导致我倾向于禁掉ipv6,通过在 /etc/sysctl.conf 中添加以下语句即可,同时开启 bbr</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1<br>net.core.default_qdisc = fq<br>net.ipv4.tcp_congestion_control = bbr</span></pre>
</div>
<p>然后输入以下命令使之生效</p>
<div class="cnblogs_code">
<pre>sysctl -p</pre>
</div>
<p>可以通过以下命令检测是否开启成功,如果返回值中含有 bbr 或 fq 则开启成功</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
sysctl net.core.default_qdisc
</span><span style="color: rgba(0, 0, 255, 1)">lsmod</span> | <span style="color: rgba(0, 0, 255, 1)">grep</span> bbr</pre>
</div>
<p>然后重启系统,当然可以不重启,但重启能检验很多功能是否正常,比如 ssh ,检查越早做,后面返工的概率越低</p>
<div class="cnblogs_code">
<pre>systemctl reboot</pre>
</div>
<p>安装防火墙 ufw ,在 CentOS 上我用 firewall ,但是,Debian上有 ufw ,这么好用为什么不用呢(</p>
<div class="cnblogs_code">
<pre>apt-<span style="color: rgba(0, 0, 255, 1)">get</span><span style="color: rgba(0, 0, 0, 1)"> update
apt</span>-<span style="color: rgba(0, 0, 255, 1)">get</span><span style="color: rgba(0, 0, 0, 1)"> upgrade
apt</span>-<span style="color: rgba(0, 0, 255, 1)">get</span> install ufw</pre>
</div>
<p>添加软链</p>
<div class="cnblogs_code">
<pre>ln -s /usr/sbin/ufw /usr/bin/ufw</pre>
</div>
<p>然后修改配置文件 /etc/default/ufw 将 yes 改为 no ,取消 ipv6 相关设置</p>
<div class="cnblogs_code">
<pre>IPV6=no</pre>
</div>
<p>开放需要的端口</p>
<div class="cnblogs_code">
<pre>ufw allow <span style="color: rgba(128, 0, 128, 1)">22</span><span style="color: rgba(0, 0, 0, 1)">
ufw allow </span><span style="color: rgba(128, 0, 128, 1)">80</span><span style="color: rgba(0, 0, 0, 1)">
ufw allow </span><span style="color: rgba(128, 0, 128, 1)">8443</span><span style="color: rgba(0, 0, 0, 1)">
ufw allow </span><span style="color: rgba(128, 0, 128, 1)">9090</span></pre>
</div>
<p>启动防火墙,自动添加到开机启动项</p>
<div class="cnblogs_code">
<pre>ufw enable</pre>
</div>
<p>检查是否开启对应端口,如果没有,则再添加一次</p>
<div class="cnblogs_code">
<pre>ufw status</pre>
</div>
<p>至此,基础配置完成</p>
<p> </p>
<p><strong><span style="font-size: 18pt">挂载硬盘</span></strong></p>
<p>如果想直接用tf卡做云盘当然可以,不过体验自然不如外接硬盘,在不熟悉的情况下,可以先用闲置硬盘练手,容错率高</p>
<p>首先在其他电脑上格式化移动硬盘,这样速度比较快,比如 diskgenius 就可以格式化为 ext4 ,插入移动硬盘,注意靠近网卡侧的为 usb3.0 ,实测跑满百兆带宽没问题, smb 能跑到千兆带宽,所以还需调试和优化</p>
<p>首先查看硬盘的 uuid ,因为如果按路径挂载,可能出现掉盘后路径变更或多硬盘无法区分的问题,所以使用 uuid 来挂载</p>
<div class="cnblogs_code">
<pre>ln -s /sbin/blkid /usr/bin/<span style="color: rgba(0, 0, 0, 1)">blkid
blkid</span></pre>
</div>
<p>修改 /etc/fstab ,使其能开机挂载,命令最后两个参数表示不需要dump和不需要检查顺序,需要则改为 1 ,硬盘标识根据上面查到的结果修改</p>
<div class="cnblogs_code">
<pre>UUID=<span style="color: rgba(255, 0, 0, 1)">硬盘标识</span> /<span style="color: rgba(0, 0, 255, 1)">var</span>/media/ssdData ext4 defaults <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(128, 0, 128, 1)">0</span></pre>
</div>
<p>路径可以自行设定,然后手动创建对应路径,然后使用mount命令挂载,笔者使用的是常用路径,如修改后文记得同步修改</p>
<div class="cnblogs_code">
<pre>mount -a</pre>
</div>
<p> </p>
<p><span style="font-size: 18pt"><strong>KodExplorer</strong></span></p>
<p>在尝试可道云之前尝试了 OMV5( OpenMediaVault5 ),但是发现使用非常困难,存在有大量无法解决的问题,安装时间也非常漫长,而提供的功能并没有让人眼前一亮,多数服务可以直接手动部署,经过两天的 debug 尝试,最终放弃,在对比了 NextCloud 和 SeaFile的界面后,选择了可道云 KodExplorer (笑),当然还有一个新的 KodBox ,官方宣称是代码重构后的产物,但评论反馈认为不适合个人云盘,于是选择了 KodExplorer</p>
<div class="cnblogs_code">
<pre>https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/kalcaddle/KodExplorer<br>http://bbs.kodcloud.com/<br></span></pre>
</div>
<p>首先界面就能眼前一亮,并且提供的功能非常多且方便,因为基于docker部署,所以去docker官网找镜像,最终找到一个基于4.40开发的固件,同时自带了 AriaNG , docker-cli 命令见 readme ,这个镜像集成了 mongodb 、 nginx 和 php ,所以可以一键布置,开箱即用</p>
<div class="cnblogs_code">
<pre>https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/dennischancs/kodexplorer</span></pre>
</div>
<div class="cnblogs_code">
<pre>docker run -<span style="color: rgba(0, 0, 0, 1)">d \
</span>--<span style="color: rgba(0, 0, 0, 1)">name kodexplorer \
</span>--hostname=<span style="color: rgba(0, 0, 0, 1)">kodexplorer \
</span>-p <span style="color: rgba(128, 0, 128, 1)">5210</span>:<span style="color: rgba(128, 0, 128, 1)">5210</span><span style="color: rgba(0, 0, 0, 1)"> \
</span>-p <span style="color: rgba(128, 0, 128, 1)">5218</span>:<span style="color: rgba(128, 0, 128, 1)">5218</span><span style="color: rgba(0, 0, 0, 1)"> \
</span>-v <span style="color: rgba(255, 0, 0, 1)">/var/media/ssdDATA/koddata</span>:/<span style="color: rgba(0, 0, 0, 1)">koddata \
</span>-v <span style="color: rgba(255, 0, 0, 1)">/var/media/ssdDATA/ganaku</span>:/koddata/Group<span style="color: rgba(0, 0, 0, 1)">/public/h</span>ome/<span style="color: rgba(0, 0, 0, 1)">ssdDATA \
</span>--<span style="color: rgba(0, 0, 0, 1)">restart <span style="color: rgba(255, 0, 0, 1)">always</span> \
dennischancs</span>/kodexplorer</pre>
</div>
<p>上面为笔者的命令,其中路径更改为了挂载路径,因为默认的路径是放在 tf 卡的,而可道云的个人文件夹就在默认路径下,为了方便,都设置到移动硬盘上,减少了很多限制,如果之前用了其他路径,这里需要相应地更改,同时 restart 的参数改为了 always ,键入后便开始拉取仓库,稍等片刻即可使用,<span style="color: rgba(255, 0, 0, 1)">记得开放端口<span style="color: rgba(0, 0, 0, 1)">,首次运行需要等待一定时间,不要刷新网页,</span></span>首次访问会让设置管理员密码,进去后右上角设置打开 csrf 防跨站攻击,删除掉两个游客账户,其他根据需求自行修改即可</p>
<p>如果部署之后需要修改路径,需要先停止 docker 然后找到容器的 ID</p>
<div class="cnblogs_code">
<pre>docker <span style="color: rgba(0, 0, 255, 1)">ps</span> -a</pre>
</div>
<p>然后根据 ID 找到文件夹</p>
<div class="cnblogs_code">
<pre>/var/lib/docker/containers/<span style="color: rgba(255, 0, 0, 1)">ID/</span></pre>
</div>
<p>然后打开文件修改配置</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">hostconfig.json
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Binds</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">项
config.v2.json
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">MountPoints</span><span style="color: rgba(128, 0, 0, 1)">"</span> 项</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1294372/202010/1294372-20201022175214427-280349998.png" alt="" loading="lazy"></p>
<p><img src="https://img2020.cnblogs.com/blog/1294372/202010/1294372-20201022175120711-1817685064.png" alt="" loading="lazy"></p>
<p> </p>
<p><strong><span style="color: rgba(0, 0, 0, 1); font-size: 18pt">CecOS-CaaS</span></strong></p>
<p>既然部署完 docker 了,就体验下 cecos 。首先要运行 docker 才能运行 cecos ,端口为 8443 ,注意需要使用 <span style="color: rgba(255, 0, 0, 1)">https 访问</span>,否则会显示服务器拒绝连接,初始账号密码为 admin 和 password ,登录后记得修改密码,功能本文不详细介绍,可以自行查阅,笔者主要用来查看 docker 的详情和状态</p>
<p> </p>
<p><span style="font-size: 18pt"><strong>Aria-Pro</strong></span></p>
<p>使用的是上面可道云 docker 开发者的推荐版本, github 中有 docker-cli 安装命令,修改 <span style="color: rgba(255, 0, 0, 1)">token</span> 即可,安装完后需<span style="color: rgba(255, 0, 0, 1)">开放 6800 和 6888 端口</span></p>
<div class="cnblogs_code">
<pre>https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/P3TERX/Docker-Aria2-Pro</span></pre>
</div>
<p>安装完成在可道云顶栏点击 AriaNG 或访问 5218 端口即可打开 AriaNG 页面,在 [ AriaNG 设置 - RPC( 192.168.XXX.XXX:6800 ) - Aria2 RPC 密钥] 中添加上述 token ,然后重新载入即可使用,其他设置可以根据需求自行修改</p>
<p> </p>
<p><strong><span style="font-size: 18pt">大文件传输</span></strong></p>
<p>这时可以尝试传输些大文件压测一下了,上传下载都是必要的,在尝试了2G文件的上传后,直接体验到了掉盘,重新挂载上传,再度掉盘</p>
<p>经分析,应该是供电问题,因此加了一个可以额外供电的 USB HUB 。同时,将可道云的配置参数增大,配置文件的地址可以通过下面命令获得,其中容器 ID 只要能区分出即可,不用全部输入,如果几个容器第一位完全不同,甚至输入第一位都没问题</p>
<div class="cnblogs_code">
<pre>docker <span style="color: rgba(0, 0, 255, 1)">ps</span> -<span style="color: rgba(0, 0, 0, 1)">a
docker inspect 容器ID</span></pre>
</div>
<p>往下翻可以找到 "<span style="color: rgba(255, 0, 0, 1)">UpperDir</span>" 即可看到红色部分路径 </p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">/var/lib/docker/overlay2/Id/diff</span>/<span style="color: rgba(0, 0, 0, 1)">var</span>/www/html/config/config.php</pre>
</div>
<div class="cnblogs_code">
<pre>@set_time_limit(<span style="color: rgba(128, 0, 128, 1)">3600</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">20min pathInfoMuti,search,upload,download...</span>
@ini_set(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">max_execution_time</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 128, 1)">3600</span><span style="color: rgba(0, 0, 0, 1)">);
@ini_set(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">memory_limit</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'2</span><span style="color: rgba(128, 0, 0, 1)">000M</span><span style="color: rgba(128, 0, 0, 1)">'</span>);<span style="color: rgba(0, 128, 0, 1)">//
</span>@ini_set(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">session.cache_expire</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 128, 1)">3600</span>);</pre>
</div>
<p>然后将下面文件中的切片增大,官方推荐大小为5M,然后并发数改到15,修改后速度能提升到20MB/s左右,不过要激活页面才能稳定,否则会间歇性掉速</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">/var/lib/docker/overlay2/Id/diff</span>/<span style="color: rgba(0, 0, 0, 1)">var</span>/www/html/config/setting.php</pre>
</div>
<div class="cnblogs_code">
<pre><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">updloadChunkSize</span><span style="color: rgba(128, 0, 0, 1)">'</span> => <span style="color: rgba(128, 0, 128, 1)">1024</span>*<span style="color: rgba(128, 0, 128, 1)">1024</span>*<span style="color: rgba(128, 0, 128, 1)">5</span>,<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">5M;分片上传大小设定;需要小于php.ini上传限制的大小</span>
<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">updloadThreads</span><span style="color: rgba(128, 0, 0, 1)">'</span> => <span style="color: rgba(128, 0, 128, 1)">15</span>, <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">上传并发数;部分低配服务器上传失败则将此设置为1,</span></pre>
</div>
<p>重启docker后尝试下,笔者在修改到下面配置并增加HUB后可以稳定上传4G大小的文件了,暂时未测试更大的文件,稳定性相关内容会在后续更新中添加</p>
<p>至此,就可以开始体验私有云盘了,并且由于公共目录是映射得到的,卸载和重装可道云不会对其产生任何影响,非常舒适了</p>
<p> </p>
<p>感谢</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">定位那个docker容器占用overlay2的问题之容器磁盘定位
https://</span><span style="color: rgba(0, 128, 0, 1)"><span style="color: rgba(0, 0, 0, 1)">blog.csdn.net/hnmpf/article/details/90237465</span><br><span style="color: rgba(0, 0, 0, 1)">Debian 9/10快速开启Google BBR的方法,实现高效单边加速</span><br><span style="color: rgba(0, 0, 0, 1)">https://www.moerats.com/archives/297/</span><br><span style="color: rgba(0, 0, 0, 1)">kodbox api 配置优化</span><br><span style="color: rgba(0, 0, 0, 1)">https://doc.kodcloud.com/v2/#/help/options</span><br></span></pre>
</div>
<p> </p><br><br>
来源:https://www.cnblogs.com/Pyrokine/p/13764493.html
頁:
[1]