AI摘要
切换简介
GPT-4
生成中. . .
介绍自己
推荐相关文章
生成AI简介

封面 《はつゆきさくら》

效果

demo: https://pan.qianxu.run

管理员效果

管理员效果

游客效果

游客效果

前言

因为在逛友链的时候看到别人搭建的 alist 网盘可以统一管理好多网盘,想到了自己也有好多网盘需要统一管理一下。同时由于我平时的参考文献都放在了 OneDrive 上,但是 ipad 上的 OneDrive 刷新速度实在是太慢了,甚至我主动刷新都没法获取我最新下载的论文,所以就想着把 OneDrive 也放到 Alist 上面去。同时我还想把我的网盘加上我自己的 pan 子域名,但是 vercel 无法挂 Alist,我自己的阿里云又没有备案没法挂域名,render 又被拿去挂监控了,想来想去还剩下一个 azure 的学生优惠可以用。于是就有了这篇文章。

Azure 准备

首先你需要一个 azure 的学生账号,这个可以去这里申请,申请完之后你会得到一个 azure 的学生账号,这个账号有 100 美元的额度,可以用来搭建一些小型的服务。然后你需要一个域名,这个域名可以去这里申请,在可以看到你的优惠余额。选择一台虚拟机直接开一个 ubuntu 系统即可,怎么便宜怎么来,具体白嫖的方法可以看底下的参考链接。

余额

余额

Alist 安装

通过 ssh 登陆到我们的虚拟机,在 azure 的虚拟机控制面板里面可以看到我们的 ip,也可以自己设定一下 dns 获得域名。

ip

ip

由于我自己的 azure 已经安装好了 alist,所以后面用阿里云来进行演示

在登上服务器之后,我们可以先进行一下更新依赖操作

bash
1
2
sudo apt-get update
sudo apt-get upgrade

参考 AList 文档,因为我们使用的是 Ubuntu 系统,直接使用一键安装命令即可,

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

AList安装完成

AList安装完成

随后我们按照提示进入 alist 的安装目录,设置管理员账号

bash
1
2
cd /opt/alist
./alist admin set 123456 #123456改成你的密码

打开 http://your_ip:5244 网页,这里不管是 azure 和阿里云都需要打开安全组的 5244 端口。azure 安全组的在网络设置中,顺便我们把后续要用到的 80 和 443 端口也打开一下。

azure入站设置

azure入站设置

效果

效果

后面正常按照 AList 的文档操作就可以挂载各种云盘

反向代理

很显然我们通常都是使用 http 的 80 端口或者 https 的 443 端口,而 AList 用的是 5244 端口,当然我们可以使用修改端口来设置,但是常见的方案是使用 nginx 进行代理。安装 nginx 直接按照文档就行,当然也最好先检查一下 nginx 有没有按照。

bash
1
2
3
4
5
6
# 检查nginx是否安装
whereis nginx
# 安装nginx
sudo apt install nginx
# 看看效果
curl localhost

安装完成后修改 nginx 中的配置文件,我这里就直接简单一点执行 sudo vim /etc/nginx/sites-enabled/default,在其中的 service 里面添加下面代码,并把原先的 try_files $uri $uri/ =404; 给注释了。

nginx
1
2
3
4
5
6
7
8
9
10
11
12
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_pass http://127.0.0.1:5244;
# the max size of file to upload
client_max_body_size 20000m;
}

然后重启 nginx,sudo service nginx restart,就可以在 80 端口打开访问

配置 TLS/SSL

比较麻烦的是 SSL 证书,正规的只支持单域名的 DV 证书也要将近 3000,多少有点不值得。所以在看了看各种方案,打算继续沿用 cloudflare 的方案,其可以为服务器免费提供 SSL 证书,但是只有 cloudflare 支持。

首先先去 cloudflare 的 DNS 里面添加一条域名 A 类解析域名-DNS-记录
DNS解析

DNS解析

然后去申请 SSL 证书,申请路径如下,点击创建证书,有效期选择 15 年,然后选择自己的域名,然后将证书进行保存 0
SSL证书申请

SSL证书申请

SSL证书创建
SSL证书创建

SSL证书保存
SSL证书保存

然后我们继续编辑上文中的 nginx 配置文件,在刚才的 location 中添加下面的代码

nginx
1
2
3
4
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate your pem;
ssl_certificate_key your key;

继续重启 nginx,sudo service nginx restart 现在可以通过 https 访问了,效果如下

效果

效果

设置 AList 别名

我的百度盘中存放我的游戏等等私密信息,OneDrive 主要是论文和个人信息,Google Drive 主要是代码,其他盘放一些杂七杂八的,不可能让游客都看到。最简单的方法就是设置游客不登录不可见,但是我还有一些数据集和论文资料需要共享,因此就轮到 AList 的别名登场了。

挂在一个 /guest 盘的 Alias,然后设置为游客可见只读,然后设置文件映射,具体的优化可以看文档

plaintext
1
2
3
4
# alias路径:实际路径
参考文献:/onedrive/参考文献
开题参考:/onedrive/开题参考
百度云:/百度云/毕设数据集

如此一来,游客的浏览效果如下

游客浏览

游客浏览

总结

通过 AList 各种网盘教程,将大部分网盘都统一管理,如此一来方便我随时管理和解决 ipad 上弊端。

参考文献