自建云盘 - KVM小盘鸡的自我修养

Lvv
Lvv 4月5日
  • 在其它设备中阅读本文章

前两周 CloudCone 的小鸡优惠 1.99 刀一个月,一时间管不住自己的手,剁了一台。512RAM,15G 硬盘,1T 流量,emmm.. 总觉得可以拿它搞点什么事情,总不能放着吃灰吧。

之前一直想着搭建个私有云盘玩玩,但又限于手里的大盘鸡网络线路不好,好的买不起。速度可以的机器吧,又是小盘鸡放不了多少东西,搭建起来也没什么意思,所以就一直没折腾。(归根结底还是没钱 233

然鹅上周看到了一大佬的文章,是关于如何挂载 GDrive 到 VPS 当本地盘使用,让我突发奇想:LAMP 搭建云盘程序,然后设置云盘程序的储存目录在本机的 GDrive 挂载目录上,进而实现:用户上传文件 → VPS(中继) → GDrive,这也算变相的扩盘了吧,只不过 VPS 在上传下载的流量中 消耗双倍(用户上传文件 → VPS 下载文件缓存到本地,再将缓存上传至 Gdrive)

当然 VPS 是 单向流量 计费才能这么玩,机器还需要支持 FUSE,没有 FUSE 就没法挂载,但可以给服务商发 TK 开启


以下是折腾过程

部分步骤来源于文章 《挂载 GoogleDrive 网盘到 VPS 当本地硬盘的两种方法》

小鸡鸡的操作系统推荐 CentOS7+

常规操作:

yum -y update

安装 EPEL 源:

yum -y install epel-release

安装一些基本组件和依赖:

yum -y install wget unzip screen fuse fuse-devel

下载 Rclone 解压然后进入目录:

wget https://downloads.rclone.org/v1.40/rclone-v1.40-linux-amd64.zip
unzip rclone-v1.40-linux-amd64.zip
cd rclone-v1.40-linux-amd64

运行 Rclone 开始配置:

./rclone config

第一步选择 n,然后回车输入一个 name,建议这个 name 设置的简单好记一点,如图所示:

然后选择我们要挂载的类型,这里选择 11,切记要选对了:

接下来的 client_idclient_secret 都留空直接回车,然后权限分配选择 1,回车:

之后的 root_folder_idservice_account_file 也都留空直接回车,Use auto config? 这里我们选择 n

现在 rclone 会在终端内给我们回显一个 GoogleDrive 的授权登录地址,如图所示:

复制这个地址然后用本地电脑的浏览器打开并登录(自备梯子),然后点击允许按钮,如图所示:

获得授权码粘贴到终端中,回车继续:

依次输入 n、y、q,如图:

接下来是配置网盘程序,经过我对比测试,发现 FileRun 网盘程序对于 Rclone 的体验最好,NextCloud、VFM2、CloudReve 等程序都有大大小小的问题(GDrive API 的锅):大文件上传破损或者无法同步到 GDrive..

安装宝塔面板(个人习惯宝塔,不喜随意,能安装 LAMP 环境就行了):

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

安装 LAMP 环境:

软件管理 → PHP 设置 → 安装拓展,安装 ionCube

创建一个站点:

下载 FileRun 程序上传到网站根目录,emmm 需要注意 PHP 版本:

FileRun 官方下载:http://www.filerun.com/download

打开宝塔 PHP 管理的 禁用函数 ,删除 exec。回到网站根目录给权限,安装。

安装完成,注意复制后台的登陆密码,不然没法登陆,登录后后台可以修改。

回到 SSH,在网站根目录创建一个 GDrive 挂载目录:

mkdir -p /drive/gdrive
//drive是我网站的根目录,自行替换

用 screen 创建一个新的会话:

cd rclone-v1.40-linux-amd64
screen -S rclone

提示 -bash: screen: command not found?
安装 screen:

yum install screen

执行挂载命令:

./rclone mount Lvv: /drive/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes
//命令中 Lvv 为开始时候创建的用户名,自行替换。
//命令中 /drive/gdrive 为上文的挂载目录,自行替换。

查看一下,不出意外,就应该挂载成功了:

df -h

再回到 FlieRun 的用户管理,修改工作路径为 GDrive 的挂载路径:

默认 VPS 重启后挂载的盘子就会没有,需要重新挂载,当然你也可以参考大佬的 这篇文章 设置开机自启,我就懒得复制了。

需要注意修改 rclone 的版本号和用户名还有挂载路径。


另外 FileRun 还有一些可选拓展:

  • mcrypt
  • openssl
  • gd
  • mbstring
  • exif
  • xml
  • zlib
  • ImageMagick 或 GraphicsMagick(用于支持额外的图片格式)
  • FFmpeg(用于显示视频缩略图)

具体拓展安装和 FileRun 使用教程我也不详说了,有意的朋友自行搜索教程。


写在最后:

因为 vfs-cache-mode 的锅,所以上传文件会缓存在本地,占用机器磁盘,请在 /root/.cache/rclone/vfs/ 目录下删除。

配合 Aria2 解锁更多姿势:滴,学生卡~

本文链接:https://sumrday.net/exp/Small-hard-disk-VPS-builds-a-private-cloud.html
本文根据 Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License 进行授权。

    情醉中国风
    情醉中国风  2018-04-08, 22:53

    直接小鸡套cdn用了(´・_・`)

    c0sMx
    c0sMx  2018-04-15, 14:18

    主机商跑路怎么办hhh

      Lvv
      Lvv  2018-04-16, 17:25

      没事儿,数据存储在GDrive随便跑hhh

    arrowarrow
    arrowarrow  2018-06-06, 21:20

    Debian8+LNMP(oneinstack)+Aria2+AriaNG+Filerun+Rclone+Google drive+ffmpeg (不用宝塔),给个教程吧..