前言
我在博文《Docker系列 深度使用nextcloud(九) 硬盘挂载》里讲述了如何在win10中通过WebDav挂载一个Nextcloud,也提及了一个优秀的项目Alist。实际上,Alist可以聚合多种类型的网盘/存储协议,特别是国内网盘(比如阿里云/百度云/夸克网盘/天翼云盘等)和常见文件协议(WebDav/SFTP/FTP):
比如,我这里挂了4个网盘(BaiduDisk、nextcloud-rn2、nextcloud-nas、aliyun-01,一个百度网盘、一个阿里云盘、两个Nextcloud)。尽管它们来自不同的平台,但基于Alist,我可以轻松优雅地访问每一个网盘的文件:
值得一提的是,作为一个网盘“缝合怪”,Alist还提供了一个对外的统一的WebDav API。这个特性使得我们可以像管理某个Nextcloud一样,在win10里通过WebDav挂载Alist,从而“间接”访问你的各种网盘!当你通过Alist访问一个文件时,访问流程大致是:本地电脑(比如Win10)→WebClient(基于Alist的WebDav)→Alist→Alist的某个网盘→网盘文件
。
以我自己win10电脑里挂载的Alist为例,可以看到多个网盘已经变成了我电脑里的“文件夹”:
是不是很酷呀!所以当我完成教程《Docker系列 深度使用nextcloud(九) 硬盘挂载》后,我就迫不急待地想要尝试Alist。它的文档很详细,安装难度不高。如果你网盘很多,真的推荐搞一个Alist喔!
这里分享一下我的自建Alist,访客身份可以获得一些与本博客直接相关的、Racknerd VPS中Nextcloud的资源,比如文献、电子书等,大家可以体验一下。下面我们开始安装Alist——当然,像以前大多数应用一样,基于Docker的方式 (~ ̄▽ ̄)~
测试环境
主力Racknerd VPS里测试。
uname -a # Linux racknerd-74a241 5.4.0-28-generic #32-Ubuntu SMP Wed Apr 22 17:40:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
docker --version # Docker version 20.10.21, build baeda1f
docker-compose --version # Docker Compose version v2.4.1
准备工作
指定工作目录:
work=~/docker/alist && mkdir -p $work && cd $work
开放端口
sudo ufw allow 5244/tcp comment 'alist' && sudo ufw reload
配置yaml
不了解docker的小伙伴请先看:《Docker系列 配置Docker全局环境》;《Docker系列 了解Docker Compose的配置文件》。
创建docker-compose.yml文件:
vim $work/docker-compose.yml
添加以下内容:
version: "2"
services:
app:
image: xhofe/alist:latest
container_name: alist
volumes:
- ./app:/opt/alist/data
ports:
- 5244:5244 # 按需修改
restart: unless-stopped
networks:
- default
networks:
default:
name: alist
上线服务:
cd $work && docker-compose up -d
查看用户admin
的相关信息:
docker exec -it alist ./alist admin
输出信息为:
INFO[2022-12-08 13:38:02] reading config file: data/config.json
INFO[2022-12-08 13:38:02] load config from env with prefix: ALIST_
INFO[2022-12-08 13:38:02] init logrus...
INFO[2022-12-08 13:38:02] admin user's info:
username: admin
password: XXXXXX
记住username
和password
。它们是分别是用来登陆Alist后台的用户名/密码。
NPM设置
不了解Nginx Proxy Manager用法的小伙伴,请看《Docker系列 两大神器NPM和ddns-go的安装》。
通过ddns-go或者域名托管后台解析一个域名example.com
。
NPM反代http://172.17.0.1:5244
。无特殊设置。如下图:
初识Alist
上面日志输出的admin
和XXXXXX
就是登陆Alist的初始密码。刚刚开始登陆的时候会有一个报错,没关系,因为它此时还没有挂载任何硬盘。你可以从下面的管理
进入后台:
后台大致界面如下图所示:
修改帐户/密码
很简单,就在个人资料
里改动即可:
个人建议你要修改,因为默认的密码是一个弱密码。有bitwarden完全不虚呀!
添加硬盘
Alist的文档写得挺清楚了,大家多看看。原理大概是,如果你要声明对某个网盘的所有权,你需要获得该网盘的refresh token(刷新令牌)。这个刷新令牌只有你登陆成功后才可以看到,每个人的都是不一样的。
如果是挂载支持WebDav协议的硬盘,则需要提供帐户/密码来声明你对该网盘的所有权(对于Nextcloud可以这样操作)。
具体挂载位置如图所示:
下面我举几个例子。
阿里云盘
按文档操作。
主要是这个token。你可以登陆阿里云盘(https://www.aliyundrive.com/drive),按F12后根据下图的提示找到refresh_token
:
然后,将这个token填入刷新令牌
下方的空栏即可。
最后,改一下挂载路径。可以随便起个名字,自己知道对应哪个网盘就行。我这里用了一个aliyun-01
的名字。
百度网盘
如图。看文档进行操作,最后获得刷新令牌即可。不多说,自己试试看。
WebDav网盘
Nextcloud可以通过WebDav挂载。按文档操作。
关于这个WebDav地址我在博文《Docker系列 深度使用nextcloud(九) 硬盘挂载》里也讲过了,链接位置在这(以Nextcloud为例;第3步有一个URL):
访客目录
Alist有一个GUEST用户,似乎是不可关闭的。个人建议为访客指定一个不重要的(或你不介意公开的)文件夹。可以在编辑
里改属性,包括目录和权限。这里不进一步演示了,挺简单的。如果访客访问https://example.com
的话,就会见到你这里设置的目录。修改基本路径很重要,否则访客可以直接查看你所有挂载的硬盘(因为默认路径是/
)!
基于WebDav访问Alist
如前所述,你可以在win10里基于WebDav挂载Alist作为硬盘。Alist的WebDav信息很简单,格式如下:
URL: https://example.com/dav/
Username: admin
Password: XXXXXX
对号入座,更改为自己的设置即可(如果忘记了,可以用docker exec -it alist ./alist admin
查看)。然后按《Docker系列 深度使用nextcloud(九) 硬盘挂载》里的方法在win10里挂载Alist。
最后,我展示一下自己win10电脑里挂载的Alist:
有点慢吞吞的,毕竟是挂在国外VPS里,速度慢点也很正常 (~ ̄▽ ̄)~ 凑合用吧!
Internet选项
我发现在自建Alist下载文件时,总会提示不安全。一般来说,自己是不会害自己的,所以这种“安全提示”是多余的;它们可能与使用设备的默认安全等级有关,每个人的电脑可能不太一样。我建议,你可以将自建Alist域名(比如https://alistrn2.hwb0307.com
)加到本地电脑的信任域名白名单里。这样,除了某些敏感后缀的文件(比如.reg
),一般不再提示安全警告。
对于Win10用户,可以这样操作:
- 打开控制面板:
- 进入Internet选项:
- 添加域名到信任网站名单。支持正则表达式:
完结,撒花!
小结
Alist是一个挺简单的应用,可以通过Docker安装。好处是你可以一下子将自己杂七杂八的网盘都“聚”在一起管理;坏处是多一层中转,网络连接的延迟会增加;如果你在海外VPS里搭建的Alist,这种感觉会更加明显。不过我个人使用觉得还行。如果你平时使用的文件大小不太大的话,这种方式来管理文件还挺方便的。
有什么问题欢迎评论区留言喽!
参考/扩展阅读
- Alist Docs:参考文档。非常详细!
- Docker Alist: Docker安装Alist的代码
- 支持本地挂载的网盘文件列表工具AList:描述了其它网盘加入Alist、本地挂载WebDav的一些技巧。
- Alist使用cloudflare workers为OneDrive国际版下载加速 | 安云网:似乎是个不错的Alist加速方法。有机会试试看。
---------------
完结,撒花!如果您点一下广告,可以养活苯苯😍😍😍
支持离线下载的吗?
我去又更新了(/ω\)alist我是放在路由上的。alist真挺好用的
最近时间松一点,所以晚上有时间写博文,哈哈(♥ω♥ ) ~♪