zoukankan      html  css  js  c++  java
  • 基于树莓派4B+Debian-PI+KodExplorer+Aria-Pro搭建的私人云盘

    本文分为上下两部分,上为本地云盘搭建教程,下为内网穿透教程

    最开始打算直接用 Raspbian 的,不给打算尝试下不同的固件,因为在服务器上长期使用 CentOS ,所以打算试试树莓派版,但是只有华为有一个镜像

    http://mirrors.huaweicloud.com/centos-altarch/7.8.2003/isos/armhfp/

    在尝试后发现有些问题,于是再度寻找,然后找到了一个叫 Debian-Pi 的系统,有 64 位版本,其中 web 加强版集成了 web 管理页面、 docker 、 CeCOS-CaaS 、 bbr ,如果重装系统,需要部署的工具就更少,更加方便,官方宣称的文件读写速度也优化过,不过稳定性和兼容性尚待检验

    https://github.com/openfans-community-offical/Debian-Pi-Aarch64

    截止 2020-10-02 ,最新的 plus++ 版本(即 web 加强版)为 2020-06-22-U4 ,直接下载压缩包并解压,解压后的 img 镜像文件约有 4G 大小,选择一张 C10 速度起步的 tf 卡,建立一个空白分区并格式化为 fat32 格式(或其他可以被 win32diskimager 识别的格式),然后使用 win32diskimager 刷入固件,完成后插入树莓派开机,需要等待几分钟时间完成初始化

    基础设置

    自带的 WebUI 有三,但是因为 ssh 可以用软件连接,所以只需要用到 9090 端口的后台 gui 和 8443 端口的 cecos 工具,笔者因使用命令行操作,所以直接用网线直连,在路由器中找到树莓派对应的 ip ,带上端口号进入后台,用户名和密码为 pi 和 raspberry ,进去后设置 root 账号密码,并去掉锁定, pi 账户的密码可以在后台修改也可以用命令行修改,命令在 readme 里面有介绍,笔者选择在后台修改

    然后使用 ssh 工具登录,初始用户密码为 pi 和 raspberry ,进去后修改密码

    passwd

    然后切换到 root 账户

    su root 或者 sudo -i

    winscp如要在root权限下操作需要在【高级-环境- SFTP - SFTP 服务器】中将默认改为下文

    sudo su -c /usr/lib/sftp-server

    其中路径可以在命令行中查询到

    whereis sftp-server

    然后禁用ipv6,当然可以不禁用,因为有些原因导致我倾向于禁掉ipv6,通过在 /etc/sysctl.conf 中添加以下语句即可,同时开启 bbr

    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    net.core.default_qdisc = fq
    net.ipv4.tcp_congestion_control = bbr

    然后输入以下命令使之生效

    sysctl -p

    可以通过以下命令检测是否开启成功,如果返回值中含有 bbr 或 fq 则开启成功

    sysctl net.ipv4.tcp_available_congestion_control
    sysctl net.ipv4.tcp_congestion_control
    sysctl net.core.default_qdisc
    lsmod | grep bbr

    然后重启系统,当然可以不重启,但重启能检验很多功能是否正常,比如 ssh ,检查越早做,后面返工的概率越低

    systemctl reboot

    安装防火墙 ufw ,在 CentOS 上我用 firewall ,但是,Debian上有 ufw ,这么好用为什么不用呢(

    apt-get update
    apt-get upgrade
    apt-get install ufw

    添加软链

    ln -s /usr/sbin/ufw /usr/bin/ufw

    然后修改配置文件 /etc/default/ufw 将 yes 改为 no ,取消 ipv6 相关设置

    IPV6=no

    开放需要的端口

    ufw allow 22
    ufw allow 80
    ufw allow 8443
    ufw allow 9090

    启动防火墙,自动添加到开机启动项

    ufw enable

    检查是否开启对应端口,如果没有,则再添加一次

    ufw status

    至此,基础配置完成

    挂载硬盘

    如果想直接用tf卡做云盘当然可以,不过体验自然不如外接硬盘,在不熟悉的情况下,可以先用闲置硬盘练手,容错率高

    首先在其他电脑上格式化移动硬盘,这样速度比较快,比如 diskgenius 就可以格式化为 ext4 ,插入移动硬盘,注意靠近网卡侧的为 usb3.0 ,实测跑满百兆带宽没问题, smb 能跑到千兆带宽,所以还需调试和优化

    首先查看硬盘的 uuid ,因为如果按路径挂载,可能出现掉盘后路径变更或多硬盘无法区分的问题,所以使用  uuid 来挂载

    ln -s /sbin/blkid /usr/bin/blkid
    blkid

    修改 /etc/fstab ,使其能开机挂载,命令最后两个参数表示不需要dump和不需要检查顺序,需要则改为 1 ,硬盘标识根据上面查到的结果修改

    UUID=硬盘标识 /var/media/ssdData ext4 defaults 0 0

    路径可以自行设定,然后手动创建对应路径,然后使用mount命令挂载,笔者使用的是常用路径,如修改后文记得同步修改

    mount -a

    KodExplorer

    在尝试可道云之前尝试了 OMV5( OpenMediaVault5 ),但是发现使用非常困难,存在有大量无法解决的问题,安装时间也非常漫长,而提供的功能并没有让人眼前一亮,多数服务可以直接手动部署,经过两天的 debug 尝试,最终放弃,在对比了 NextCloud 和 SeaFile的界面后,选择了可道云 KodExplorer (笑),当然还有一个新的 KodBox ,官方宣称是代码重构后的产物,但评论反馈认为不适合个人云盘,于是选择了 KodExplorer

    https://github.com/kalcaddle/KodExplorer
    http://bbs.kodcloud.com/

    首先界面就能眼前一亮,并且提供的功能非常多且方便,因为基于docker部署,所以去docker官网找镜像,最终找到一个基于4.40开发的固件,同时自带了 AriaNG , docker-cli 命令见 readme ,这个镜像集成了 mongodb 、 nginx 和 php ,所以可以一键布置,开箱即用

    https://github.com/dennischancs/kodexplorer
    docker run -d 
      --name kodexplorer 
      --hostname=kodexplorer 
      -p 5210:5210 
      -p 5218:5218 
      -v /var/media/storage/koddata:/koddata 
      -v /var/media/ssdDATA:/koddata/Group/public/home/ssdDATA 
      --restart always 
      dennischancs/kodexplorer

    上面为笔者的命令,其中路径更改为了挂载路径,因为默认的路径是放在 tf 卡的,而可道云的个人文件夹就在默认路径下,为了方便,都设置到移动硬盘上,减少了很多限制,如果之前用了其他路径,这里需要相应地更改,同时 restart 的参数改为了 always ,键入后便开始拉取仓库,稍等片刻即可使用,记得开放端口,首次运行需要等待一定时间,不要刷新网页,首次访问会让设置管理员密码,进去后右上角设置打开 csrf 防跨站攻击,删除掉两个游客账户,其他根据需求自行修改即可

    CecOS-CaaS

    既然部署完 docker 了,就体验下 cecos 。首先要运行 docker 才能运行 cecos ,端口为 8443 ,注意需要使用 https 访问,否则会显示服务器拒绝连接,初始账号密码为 admin 和 password ,登录后记得修改密码,功能本文不详细介绍,可以自行查阅,笔者主要用来查看 docker 的详情和状态

    Aria-Pro

    使用的是上面可道云 docker 开发者的推荐版本, github 中有 docker-cli 安装命令,修改 token 即可,安装完后需开放 6800 和 6888 端口

    https://github.com/P3TERX/Docker-Aria2-Pro

    安装完成在可道云顶栏点击 AriaNG 或访问 5218 端口即可打开 AriaNG 页面,在 [ AriaNG 设置 - RPC( 192.168.XXX.XXX:6800 ) - Aria2 RPC 密钥] 中添加上述 token ,然后重新载入即可使用,其他设置可以根据需求自行修改

    大文件传输

    这时可以尝试传输些大文件压测一下了,上传下载都是必要的,在尝试了2G文件的上传后,直接体验到了掉盘,重新挂载上传,再度掉盘

    经分析,应该是供电问题,因此加了一个可以额外供电的 USB HUB 。同时,将可道云的配置参数增大,配置文件的地址可以通过下面命令获得,其中容器 ID 只要能区分出即可,不用全部输入,如果几个容器第一位完全不同,甚至输入第一位都没问题

    docker ps -a
    docker inspect 容器ID

    然后第一行即可看到 Id ,填入下方红字部分并打开

    /var/lib/docker/overlay2/Id/diff/var/www/html/config/config.php
    @set_time_limit(3600);//20min pathInfoMuti,search,upload,download...
    @ini_set("max_execution_time",3600);
    @ini_set('memory_limit','7000M');//
    @ini_set('session.cache_expire',3600);

    然后将下面文件中的切片增大,官方推荐大小为5M,然后并发数改到15,修改后速度能提升到20MB/s左右,不过要激活页面才能稳定,否则会间歇性掉速

    /var/lib/docker/overlay2/Id/diff/var/www/html/config/setting.php
    'updloadChunkSize'    => 1024*1024*5,//5M;分片上传大小设定;需要小于php.ini上传限制的大小
    'updloadThreads'    => 15,             //上传并发数;部分低配服务器上传失败则将此设置为1,

    重启docker后尝试下,笔者在修改到下面配置并增加HUB后可以稳定上传4G大小的文件了,暂时未测试更大的文件,稳定性相关内容会在后续更新中添加

    至此,就可以开始体验私有云盘了,并且由于公共目录是映射得到的,卸载和重装可道云不会对其产生任何影响,非常舒适了

    感谢

    定位那个docker容器占用overlay2的问题之容器磁盘定位
    https://blog.csdn.net/hnmpf/article/details/90237465
    Debian 9/10快速开启Google BBR的方法,实现高效单边加速
    https://www.moerats.com/archives/297/
    kodbox api 配置优化
    https://doc.kodcloud.com/v2/#/help/options
  • 相关阅读:
    我理解的SNS(一)
    获取某命名规则下一系列表的总条数
    lock后日志干净了
    设计模式学习系列之UML图(创建型模式)
    CLR实用特征异常
    arcgis api for flex 高级主题(一) esri tilemap 四叉树索引研究<转>
    arcgis api for flex 开发入门(三)地图浏览控件的使用<转>
    深入浅出 Javascript API(三)地图配置<转>
    深入浅出 Javascript API(四)绘制 Graphics<转>
    arcgis api for flex 开发入门(二)map 的创建<转>
  • 原文地址:https://www.cnblogs.com/Pyrokine/p/13764493.html
Copyright © 2011-2022 走看看