• 因为软件性质,经常失效,希望大家发现后告知本站更新,谢谢,您的一个建议,方便你我他
  • 欢迎访问二次元软件世界,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入我们 QQ群
  • 本站提供最常用软件的绿色免安装版,让您免去碎片化的干扰,一站式服务平台
  • 绿色软件中心提拱海量免费软件安全下载,全部软件都已经过安全杀毒检测。手机、电脑版应用软件大全,最新最快速的软件下载中心
  • 本站提供WIN7、WIN10以及Linux系统等系统下载,并且有详细的系统安装教程,让系统安装不那么神秘
  • 站在技术前沿,用朴实的语言描述神秘的黑科技,让科技不再黑
  • 我们还提供网络建站和网站优化服务哦!!!
  • 本站本着方便你我他的原则,正在陆续去掉提取码,如果有连接失效,麻烦告知一下

VPS上利用rclone和alist挂载网盘当本地磁盘

教程技巧 3个月前 (12-13) 702次浏览 0个评论 扫描二维码
文章目录[隐藏]

最近新搞了个大型资源站,光数据就有6个T,我们都知道现在的vps大点的也就100G,一般的也就40G,就这点空间,相比于这些数据就小巫见大巫了,这可把我愁死了,好在发现了一个挂载神器Rclone,Rclone 是一个用于管理云存储上的文件的命令行程序。被称为“云存储的瑞士军刀”,Rclone可以将任何本地、云或虚拟文件系统挂载为 Windows、macOS、linux 和 FreeBSD 上的磁盘,并且还通过 SFTP、 HTTP、 WebDAV、 FTP和 DLNA为这些文件系统提供服务,非常的强大,其实在认识Rclone之前,一直用的比较火的小雅Alist,也想过用小雅实现我想要的挂载云盘当vps本地盘的想法,不过没能成功,提取的直链有效期也不够,所以只能另求他法,于是就发现了Rclone,好了废话不多说了,下面我就介绍下怎么把网盘挂载到服务器当本地盘的方法。
这里我先说下我的解决思路,其实我直接试过Rclone直接挂载云盘,因为我挂载的是谷歌云和onedrive,谷歌云的秘钥只有七天的有效期,就是个鸡肋,所以就用的onedrive,至于为什么不用国内的云盘,那是因为我不想那天我的文件被他们删了,所以只能牺牲性能用国外网盘了。正好有微软的365网盘,单个用户就5T,这样就好管理了。说到底为什么不直接用Rclone,就是因为令牌有效期问题和管理问题。所以现在的解决方案就是利用小雅Alist挂载云盘到服务器,然后再利用Rclone映射到本地目录。

准备工作

带有公网IP的一台vps服务器
ssh工具

步入正题

安装Alist

curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s install

这里我们用的是一键安装脚本,安装完成后如图


我们要设置下密码才能使用,首先cd进入alist的安装目录,然后输入./alist admin set 新密码,回车即可。

---------如何获取密码?--------
先cd到alist所在目录:
cd /opt/alist
随机设置新密码:
./alist admin random
或者手动设置新密码:
./alist admin set NEW_PASSWORD
----------------------------

我们设置完密码后可以使用IP:5244直接登录前端了,剩下的设置这里就不啰嗦了。

安装rclone

安装rclone我没有使用docker进行部署,主要是因为要挂载在宿主机上,来回映射路径相对来说比较麻烦。所以我就根据rclone的官方教程进行安装:

安装依赖

# Ubuntu系统使用apt安装
apt-get install fuse3 -y
# centos系统使用yum安装
yum install fuse3 -y

方式一:脚本安装

curl https://rclone.org/install.sh | sudo bash

方式二:二进制文件安装

# 创建rclone目录
mkdir /opt/rclone

# 进入该目录
cd /opt/rclone

# 下载rclone预编译二进制文件压缩包
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip

# 解压
unzip rclone-current-linux-amd64.zip

# 将rclone二进制文件放入/usr/bin目录下,这里要先进入解压的rclone文件夹里面,一定要注意版本号
cp rclone /usr/bin/

# 授权
chmod 755 /usr/bin/rclone

# 验证是否成功,显示版本号证明成功
rclone --versio

设置rclone

要将alist挂载到本地,先要设置rclone remote,rclone文档说的比较清晰,可以跟着以下命令进行操作:

# 进入rclone设置
rclone config

# 选择新远程
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n #这里选择n

# 设置名字
name> alist
Type of storage to configure.
Choose a number from below, or type in your own value
[snip]
XX / WebDAV
   \ "webdav"
[snip]
Storage> webdav #这里输入远程的名字,之后就是你的远程名称

# 设置远程地址url http://your_alist_ip:port/dav
URL of http host to connect to
Choose a number from below, or type in your own value
 1 / Connect to example.com
   \ "https://example.com"
url> http://127.0.0.1:8080/dav #这里设置alist的地址和端口,后面要带dav,这是alist要求的

# 这里选6就可以了,1-5都不是我们使用的
Name of the WebDAV site/service/software you are using
Choose a number from below, or type in your own value
 1 / Fastmail Files
   \ (fastmail)
 2 / Nextcloud
   \ (nextcloud)
 3 / Owncloud
   \ (owncloud)
 4 / Sharepoint Online, authenticated by Microsoft account
   \ (sharepoint)
 5 / Sharepoint with NTLM authentication, usually self-hosted or on-premises
   \ (sharepoint-ntlm)
 6 / Other site/service or software
   \ (other)
vendor> 6

# 设置远程账号
User name
user> admin #这里是你alist的密码

# 设置远程密码
Password.
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank
y/g/n> y #这里输入y
Enter the password: #这输入你的密码,密码是看不到的
password:
Confirm the password: #再次输入你的密码
password:

# 这里直接回车即可
Bearer token instead of user/pass (e.g. a Macaroon)
bearer_token>
Remote config

# 这里可能会问你是默认还是高级,选择默认即可

# 你的远程信息
--------------------
[remote]
type = webdav
url = http://127.0.0.1:8080/dav
vendor = Other
user = admin
pass = *** ENCRYPTED ***
--------------------

# 确认
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y #输入y即可,

# 最后按q退出设置

挂载rclone到本地

查看是否连接成功,使用以下命令可以确认是否已经挂载上了alist

# 查看alist的目录   alist: 等于配置文件里面的名字
rclone lsd alist:
 
# 查看alist的文件  等于配置文件的remote
rclone ls alist:
#新建本地文件夹(不是必须的,根据自己的需求使用,我这里就没用)
mkdir -p /www/wwwroot/www.xxx.com/images
#挂载
rclone mount DriveName:Folder LocalFolder --cache-dir /tmp --allow-other --vfs-cache-mode writes --allow-non-empty

是不是有点懵,这里我们详细的说下参数就明白了,DriverName是你在配置rclone的时候设置的名字,Folder没有需要求的话填/即可,LocalFolder是你本地挂载的地址,/tmp比较特殊,上传时缓存目录,其他类型挂载一般时不需要这个参数的,默认/tmp地址即可,除非你的系统特殊
因为我们这里是需要存储网站的数据,所以我们要把挂载点挂载到网站的目录,最终写成

rclone mount alist:/ /www/wwwroot/www.xxx.com/images --allow-other --allow-non-empty --vfs-cache-mode writes --daemon

这里alist是我们上面的remote项目名,/www/wwwroot/www.xxx.com/images是我们需要挂载到哪个网站的目录,后面的参数自己看着设置即可。–daemon是后台运行的意思

./rclone mount:"添加网盘时的配置名称":"网盘指定目录" "挂载至本地的目录"

[--添加参数]
--allow-other:允许非当前 rclone 用户外其它用户进行访问
--attr-timeout 5m:文件属性缓存,(大小,修改时间等)的时间。如果 VPS 配置比较低,建议适当提高这个值,避免过多内核交互,降低资源占用。
--vfs-cache-mode full:开启 VFS 文件缓存,可减少 rclone 与 API 交互,同时可提高文件读写效率
--vfs-cache-max-age 24h:VFS 文件缓存时间,这里设置 24 小时,如果文件很少更改,建议设置更长时间
--vfs-cache-max-size 5G:VFS 文件缓存上限大小,请根据服务器剩余磁盘自行调节
--vfs-read-chunk-size-limit 300M:分块读取大小,这里设置的是300M,可以提高文件读取的效率,比如1G的文件,大致分为10个块进行读取,但与此同时 API 请求次数也会增多
--buffer-size 300M:设置内存缓存,请根据服务器内存大小自行设置
--daemon:后台运行程序
--copy-links: 如果 OneDrive 中存在链接(symlink),则复制链接而不是解析它们。
--no-gzip-encoding: 禁止对文件进行 gzip 编码。
--no-check-certificate: 禁止检查 SSL 证书。
--allow-other: 允许其他用户(非挂载命令的用户)访问和操作挂载的文件系统。
--allow-non-empty: 允许挂载到非空目录。如果您要将 OneDrive 挂载到一个非空目录,需要使用这个选项。
--umask 000: 设置挂载目录的文件权限掩码为 000,意味着挂载的文件和目录对所有用户都具有完全的权限。
--no-modtime 用缺少modtime信息换取加载速度。

检查挂载

df -h


我们可以看到名字为alist的云盘挂载已经挂载完成了,空间有1.0P,到这里我们已经完成云盘的挂载可以直接使用了。

解除本地挂载

# 解除本地挂载,后面跟的是挂载的本地目录
# 当自动取消挂载失败时,也可以这样手动取消挂载
fusermount -qzu /alist

写到最后

常用命令

Rclone 设置

rclone config - 进入交互式配置选项,进行添加、删除、管理网盘等操作,以控制会话的形式添加rclone的配置,配置保存在.rclone.conf文件中。
rclone config file - 显示配置文件的路径,一般配置文件在 ~/.config/rclone/rclone.conf
rclone config show - 显示配置文件信
rclone copy - 将文件从源复制到目的地址,跳过已复制完成的。
rclone sync - 将源数据同步到目的地址,只更新目的地址的数据。
rclone move - 将源数据移动到目的地址。
rclone delete - 删除指定路径下的文件内容。
rclone purge - 清空指定路径下所有文件数据。
rclone mkdir - 创建一个新目录。
rclone rmdir - 删除空目录。
rclone check - 检查源和目的地址数据是否匹配。
rclone ls - 列出指定路径下所有的文件以及文件大小和路径。
rclone lsd - 列出指定路径下所有的目录/容器/桶。
rclone lsl - 列出指定路径下所有文件以及修改时间,文件大小和路径。
rclone md5sum - 为指定路径下的所有文件产生一个md5sum文件。
rclone sha1sum - 为指定路径下的所有文件产生一个sha1sum文件。
rclone size - 获取指定路径下,文件内容的总大小。 .
rclone version - 查看当前版本。
rclone cleanup - 清空remote。
rclone dedupe - 交互式查找重复文件,进行删除/重命名操作

开机启动

通过上面的教程,我们想要的效果已经基本实现了,就是有一个缺点,那就是当我们重启服务器后,rclone服务无法自动启动,所以我们为了更方便使用,可以把rclone添加系统启动服务
设置service文件

#创建service文件
vim /usr/lib/systemd/system/rclone.service

文件内容:

[Unit] 
Description=rclone 
 
[Service] 
User=root 
ExecStart=/usr/bin/rclone mount alist:/ /www/wwwroot/www.xxx.com/images --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --use-mmap
[Install] 
WantedBy=multi-user.target

上面文件内容mount alist: 根据自己的来修改 这个是挂载目录,

设置开机自启

# reload守护进程
systemctl daemon-reload
 
# 设置service文件自启
systemctl enable rclone.service
 
# 启动service文件
systemctl start rclone.service


二次元软件世界 , 版权所有丨如有侵权 , 请联系站长丨
转载请注明原文链接:VPS上利用rclone和alist挂载网盘当本地磁盘
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
欢迎使用二次元软件世界,希望可以帮到您!!!