Cloudreve + Aria2 搭建个人网盘与离线下载以及 BuyVM(FranTech)储存区块挂载教程
之前手里有一台 G-Core 家的伯力 VPS,而且还是绝版传家宝的那种,靠近边疆延迟低,硬盘 SSD 速度快,500 Mbps 速度快,价格便宜 88 RUB/月(8.69 CNY, Jul 22, 11:17 UTC)。而唯一的缺点就是:储存空间只有 10 G,如果用来搭建网盘和离线下载,虽然可以挂载网盘,但是体验不佳,挂载网盘也需要将文件先下载下来再上传。听闻 BuyVM(和 FranTech 都是一家) 家的 Las Vegas VPS 可以挂载储存区块,G 口,而且价格便宜,就入手体验了一下,用来搭建网盘和下载。
1. 购买
FranTech 官网链接(带 aff),进入之后选择“Order Hosting”,页面的左边是产品种类。
这里由于我们要使用储存区块,所以只能选拉斯维加斯的 VPS。第一项是机器,第四项是储存区块,里面有不同价格的各种机型,请按需购买。
不过这时你很有可能会发现因为缺货而无法购买,据了解,每月 10 号左右会补货1,每天凌晨 1 点左右也会补货2(所以 10 号 1 点左右可能就一定有货?)。
商家支持多种方式付款,包括但不限于信用卡、加密货币、Paypal、WebMoney 以及支付宝(可能支持微信支付)。其中使用支付宝付款时(其他方式不清楚),虽然页面上标识的价格是 USD,但实际上却是 CAD 加元。以下图片是本月我续费的价格,我所购买的都是最低档的配置。
1 CAD = 5.21 CNY(Jul 22, 11:37 UTC),如此来看,这个价格是非常便宜了。
另一个需要注意的问题就是个人信息填写与代理工具使用,网上有人说这家审核很严格:
接着填写相关信息,地址姓名用拼音就行。需要注意以下几点:这家服务商审查比较严,注册和购买服务器时也不建议用梯子,防止以后 IP 变来变去被系统认定为欺诈,轻则会进入人工审核时间会拖好几天,重则可能封号;信息尽量不要乱填一些国外的,姓名随便整个中文名也没关系;电话选中国 +86 的,号码不用真的也没关系,不会给你发短息之类,但是不要乱填国外的;国家省份城市要跟你的 IP 所在地对的上,街道不用很详细,随便写你这个城市一个街道或小区都可以。如果真的要用梯子也因为用了梯子导致人工审核,可以给客服发个工单说下原因,比如你不用梯子打不开网站之类的客服会帮你处理的。3
注册时邮箱要跟 Paypal 一致,以免虚假资料被审核。2
不过我注册时使用了代理工具,个人信息用的是 FauxID 身份生成器生成的,电话用的是 GV 的号码,地址与 IP 并不对应。虽然我购买和使用并没有什么问题,但是在设置的添加支付方式中却有这样的提示:
另外这也是为何上文提到可能能够使用微信支付的证据,也许是因为个人 IP 的原因,所以支付选项中没有此选项。
2. 安装 & 配置系统(网络、储存、用户)
不知道应该表扬还是批评,这家竟然不自动安装系统,需要用户到后台面板手动安装。
所谓后台面板就是那个 Stallion,功能很全,尤其是系统这里,不仅提供 Debian、Ubuntu、CentOS、Fedora 这些主流发行版多个版本的自动重装服务,还提供了包括 Windows 和 BSD 在内多种系统的 ISO 镜像,供用户手动安装。这里我安装了 Ubuntu 20.04。
另外在购买 VPS 完成后,后台面板的登录信息会自动发送到你的邮箱中,如果未收到请去垃圾箱中检查。
1. 网络配置
系统安装完成后就可以进行其他配置了。在面板的 Networking 中(VPS 下的那个,不是页面顶部的那个),可以免费添加多个 IPv6 地址。
添加后 SSH 登录到 VPS,修改 /etc/netplan/01-netcfg.yaml
。
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: false # 静态地址,解决获取地址时间长的问题
dhcp6: false # 必须静态地址
addresses:
- 205.X.X.X/24 # IPv4 地址,按实际情况填写
- "2605:X::1/48" # IPv6 地址,按实际情况填写
gateway4: 205.X.X.1 # IPv4 网关,按实际情况填写
gateway6: "2605::1" # IPv6 网关,按实际情况填写
nameservers:
addresses:
- 8.8.8.8
- 2001:4860:4860::8888
- 8.8.4.4
- 2001:4860:4860::8844 # DNS 地址,按个人喜好填写
eth1:
dhcp4: true # 内网地址,用于同位置机器间通过内网不计流量的网络传输(现在貌似无用),后台可见,自动获取即可
link-local: [ ] # 不获取本地链路地址,按个人喜好填写,可删
保存退出,执行:
# netplan apply
这时 SSH 可能会无响应,稍等几分钟,等待网络配置完成即可,此时运行:
# ip addr
# networkctl status
# systemd-resolve --status
可查看各种网络配置信息,此时 ping
IPv4 和 IPv6 的地址和域名应该正常,如出现问题请重启,或检查问题。
经测试,开启 BBR 后可以显著提升网络传输速度。编辑 /etc/sysctl.conf
:
…
# 使用 FQ 队列算法,貌似这种比 FQ_CoDel、Cake 更加常用,效果更好?
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
保存后运行:
# sysctl -p
# sysctl net.ipv4.tcp_available_congestion_control
$ lsmod | grep bbr
如后两条指令都出现“bbr”字样说明加载成功,否则考虑手动加载内核模块。
# modprobe tcp_bbr
之后编辑 /etc/modules
设置开机自动加载。
…
tcp_bbr
保存并退出即可。
这里说明一下,其实这里的tcp_bbr
模块和之前在 V2Ray 透明代理中提到的xt_TPROXY
等一系列内核模块一样,没有必要手动加载,系统会根据文件中的配置进行自动按需加载,至少在 Ubuntu 20.04 与 18.04 上如此。之所以我会写这一部分是因为个人一直在使用 Ubuntu 新版本,不能确定旧版本以及其他系统的情况,事实上在网上的很多教程中还提到了关于内核版本的问题,但个人认为对于 Linux kernel 已经达到 5.x.x 的现在,这种确认已经过时了。所以在以后的文章中,无特殊情况我都会根据 Ubuntu 最新版进行编写,不过如果在发布之后发现问题,无论多久的文章,除非真的失去了时效性或是其存在价值,我都会进行一定的修改。就像我这里写 BBR 部分的时候,发布之后发现这里缺少内容,于是进行补充,在这个过程中,经过测试,又发现 V2Ray 透明代理中关于加载模块的部分没有太大必要,于是就把他从文章前部放到了后部,避免读者做无用功。
2. 储存区块配置
接下来就是挂载储存区块了,首先需要在后台将储存添加到 VPS 中,然后在 VPS 中进行分区、格式化后挂载。
# fdisk /dev/sda # 正常来说都会显示为 sdX
此时会进入 fdisk
命令界面,首先输入 o
创建 MBR 分区表,之后输入 n
创建分区,最后输入 w
进行保存。具体操作方式请自行阅读软件提示或在网络上进行查找。
之后输入
# mkfs.ext4 /dev/sda1
进行分区格式化。再更改 /etc/fstab
文件进行挂载配置。
/dev/sda1 /home ext4 defaults 0 0 # 这里我选择将储存区块挂载到整个 /home 目录
# mount /dev/sda1 # 由于已经配置了 fstab 文件,所以使用 mount 指令时无需其他选项
$ df -h # 查看挂载情况
3. 用户配置
由于需要使用 /home
目录,也为了增加安全性,顺便新建一个用户。这里将“steve”作为新用户名。
# useradd -m -g sudo -s /bin/bash steve # 创建 steve 用户,创建用户主目录,添加到 sudo 用户组以使用 sudo 指令,使用 bash 作为默认 Shell
# passwd steve # 更改密码
使用 su
指令或使用新用户名登录 VPS 即可切换用户。
3. 安装 Cloudreve 配置个人网盘
Cloudreve 是一款使用 Go 语言编写,支持多家云存储的云盘系统。相比于 Nextcloud、Seafile 这些比较老牌的网盘系统,Cloudreve 更加简洁、轻便、迅速、开箱即用,同时支持本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive(包括世纪互联版)作为存储端,还可以对接 Aria2 离线下载,非常符合我的个人需求。4
搭建之前建议仔细阅读官方文档,我的步骤只是在比较理想的情况下的一种方案记录而已,但每个人的实际情况不同,所以在配置过程中难免会出现大大小小的问题,这时仔细阅读程序的官方文档不失为一种有效的问题解决方法。
演示环境为 Ubuntu 20.04,Cloudreve 相关文件会储存在用户主目录下的 cloudreve
文件夹中。
$ cd
$ mkdir cloudreve
$ cd cloudreve
$ wget https://github.com/cloudreve/Cloudreve/releases/download/3.1.1/cloudreve_3.1.1_linux_amd64.tar.gz # 最新版本请访问 GitHub 项目网页的发布页面
$ tar -zxvf cloudreve_3.1.1_linux_amd64.tar.gz
$ chmod +x cloudreve
$ rm cloudreve_3.1.1_linux_amd64.tar.gz
$ ./cloudreve
第一次运行成功后会显示管理员用户名和密码(请进行记录)并生成配置文件。此时访问 服务器 IP:5212
会进入到网盘登录界面,输入记录的用户名和密码就会看到文件管理页面。如果运行成功,停止 Cloudreve 程序,配置 Systemd 单元守护服务。
创建 /etc/systemd/system/cloudreve.service
:
[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
Wants=network.target
[Service]
WorkingDirectory=/home/用户名/cloudreve
ExecStart=/home/用户名/cloudreve/cloudreve
Restart=on-abnormal
RestartSec=5s
KillMode=mixed
StandardOutput=null
StandardError=syslog
[Install]
WantedBy=multi-user.target
# systemctl enable cloudreve --now
虽然可以正常使用,但是 HTTP 明文传输并不安全,而且与后面 Aria2 的配置可能存在冲突,所以这里使用 Caddy 2 作为网站与反向代理服务器。
安装方法很简单,请自行到官网阅读文档,此处不多加赘述。(这里稍微插一下,写文章时浏览了一下 Caddy 的官网,发现和 v1 一样,支持在线编译模块,这真是太棒了!由于有时候需要使用到 Cloudflare 的 CDN,自动获取 TLS 证书时又需要进行验证,而由于使用了 CDN,所以只能使用 DNS 方式进行验证。v1 时可以在网页上加入 Cloudflare 模块并一键生成安装脚本,而到了 v2,需要自己手动编译,编译速度又很慢,而且容易出错,所以就一直在使用 v1。但是现在已经支持了在线编译模块并下载二进制程序,虽然需要手动安装,不过由于 Go 语言单文件的特性,只需先使用 APT 进行安装,然后替换文件即可。本来觉得 v2 的 Caddyfile 变得复杂了,使用之后觉得还不错,再加上 Caddy 官方已经删除了 v1 的网页页面,此时不升级到 v2,更待何时?)
编辑 /etc/caddy/Caddyfile
:
cloud.example.com {
reverse_proxy 127.0.0.1:5212
encode gzip
}
之后重启服务即可。
4. 配置 Aria2 离线下载
1. 配置 Aria2
Aria2 在 Ubuntu 官方源里面就有,直接安装即可。
# apt install aria2
之后在 $HOME/.aria2
下创建 Aria2 需要使用的文件并编辑 aria2.conf
。
$ cd
$ mkdir .aria2
$ cd .aria2
$ touch aria2.conf aria2.session dht.dat dht6.dat
$ vim aria2.conf
enable-rpc=true
rpc-allow-origin-all=false
rpc-listen-all=false
# RPC 服务器密钥,防止被他人使用 Aria2,如需要请在下文 Cloudreve 或 AriaNg 对应处进行填写
# rpc-secret=<TOKEN>
# 下载文件默认储存在用户主目录的 Download 文件夹下
dir=/home/用户名/Download
continue=true
save-session=/home/用户名/.aria2/aria2.session
save-session-interval=30
input-file=/home/用户名/.aria2/aria2.session
file-allocation=none
remote-time=true
content-disposition-default-utf8=true
max-connection-per-server=16
min-split-size=1M
split=16
http-accept-gzip=true
之后创建文件 /etc/systemd/system/aria2.service
。
[Unit]
Description=Aria2
[Service]
ExecStart=/usr/bin/aria2c --conf-path=/home/用户名/.aria2/aria2.conf
Restart=on-abnormal
RestartSec=5s
User=用户名
Group=用户名
[Install]
WantedBy=multi-user.target
# systemctl enable aria2 --now
为了更好的安全性以及后续 AriaNg 前端网页面板的使用,这里使用 Caddy 反向代理 Aria2 RPC 服务器。添加以下内容到 Caddyfile:
aria2.example.com {
reverse_proxy /jsonrpc 127.0.0.1:6800
encode gzip
}
2. 配置 Cloudreve
登录 Cloudreve 管理员账号,进入管理面板 -> 参数设置 -> 离线下载,修改参数。
修改完毕后点击“测试连接”,如可以成功连接则“保存”并退出。
3. 配置 AriaNg
虽然至此,我们的所有主目标均已实现,但 Cloudreve 在对于 Aria2 方面的功能比较单一,如果想要更好的使用它,就需要安装网页前端面板,这里使用 AriaNg。
# apt install unzip
# mkdir -p /var/www/aria2
$ cd /var/www/aria2
# wget https://github.com/mayswind/AriaNg/releases/download/1.1.6/AriaNg-1.1.6.zip # 最新版请自行到发布页面检查并下载
# unzip AriaNg-1.1.6.zip
# rm AriaNg-1.1.6.zip
# chown -R www-data:www-data /var/www
接着编辑 Caddyfile:
aria2.example.com {
reverse_proxy /jsonrpc 127.0.0.1:6800
encode gzip
root * /var/www/aria2
file_server
}
并重启 Caddy 服务。
在浏览器中打开 aria2.example.com
,点击 AriaNg 设置 -> RPC……进行填写。“Aria2 RPC 地址”中填写 aria2.example.com:443
,其他按需调整,完成后点击“重新加载 AriaNg”。
这里就可以体现出我们使用 Caddy 进行反向代理的一些原因。可以看到,在“Aria2 RPC 协议”中,只能选择带有加密的选项,这时因为 AriaNg 使用了 TLS 为保证安全性的缘故。使用 Caddy 配置 Aria2 RPC 服务的 TLS 证书而不是在 Aria2 中进行设置更加简洁,更易管理。
参考
- 低价大盘鸡frantech (大硬盘VPS G口带宽不限流量 适合做私有网盘离线下载)
- Frantech购买Block Storage Slabs,BuyVM挂载存储盘方法教程! 256G只要1.25美元_猪机博客
- kvm [Frantech/BuyVM Wiki]
- Get Started | Public DNS | Google Developers
- Reference | Netplan
- BuyVM Block Storage 挂载方法-教程-凤梨酥
- fstab - ArchWiki
- 快速开始 - Cloudreve
- Users and groups - ArchWiki
- ubuntu创建新用户命令(useradd和adduser)的使用方法和区别_Ubuntu/Debian_操作系统_脚本之家
- 在 Ubuntu 中如何将用户添加到 Sudoers - 云+社区 - 腾讯云
- Sudo - ArchWiki
- Welcome — Caddy Documentation
- 安装Aria2+AriaNg – 海天无影's Blog
- Nginx 反向代理 Aria2 JSONRPC | Kenvix's Blog
- 请问如何允许 aria2 多线程下载? - V2EX
- aria2c(1) — aria2 1.35.0 documentation
- 为VPS开启BBR拥塞控制算法 | iTimothy
- BuyVM - Features
你好长哦~
虽然看不懂但是很厉害就对了!
终于有人评论啦,好感动啊 QAQ!😭
不过这篇还不算长呢!