小朊的朋友圈
小朊
小朊博主

活着

Alist部署教程与挂载网盘避坑攻略

> AList是一款支持多种存储的目录文件列表程序,后端基于gin,前端使用react。

刚刚写了近两个小时的教程 结果没有保存我裂开 这篇的质量可能有点差 我没有耐心了:liulei: 项目地址

我搭建的网盘

支持的存储

安装

一键脚本

仅支持Linux-x86_64/aarch64平台。

安装

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

已经安装过再次执行安装会删除之前的数据,更新请使用更新命令。

更新

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

卸载

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

自定义路径

默认安装在/opt/alist,要自定义安装路径,添加安装路径为第二个参数,必须是绝对路径(路径以alist结尾时直接安装到给定路径,否则会安装在给定路径alist目录下),如安装到/root

# 安装
curl -fsSL "https://nn.ci/alist.sh"|bash -s install /root
# 更新
curl -fsSL "https://nn.ci/alist.sh"|bash -s update /root
# 卸载
curl -fsSL "https://nn.ci/alist.sh"|bash -s uninstall /root

宝塔操作

点击宝塔左侧的网站,新建一个网站,类型选择静态/PHP就可以了。填入你的域名,新建网站完成。

建议先申请一个ssl证书开启https,因为此程序的部分功能需要https支持。

点击设置-配置文件。将默认文件的以下内容删除:

#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
    return 404;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
    expires      30d;
    error_log /dev/null;
    access_log /dev/null;
}

location ~ .*\.(js|css)?$
{
    expires      12h;
    error_log /dev/null;
    access_log /dev/null; 
}

然后在你删除的任意地方加入:

location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    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;
    # 上传的最大文件尺寸
    client_max_body_size 20000m;
}

保存即可。

完成!打开你新建网站时填入的域名就可以打开了。

手动安装

获取Alist

打开AList Release下载要部署的系统对应的文件,最新的版本前端已经与后端打包在一起,无需再次下载前端文件。

运行起来

Linux

# 解压下载对文件得到可执行文件:
tar -zxvf alist-xxxx.tar.gz
# 赋予程序执行权限:
chmod +x alist-xxxx
# 运行程序
./alist-xxxx

其中的xxxx是指不同系统/架构对应的名称,一般Linux-x86/64是alist-linux-amd64,如果你的glibc版本过低,建议下载musl版本

守护进程

vim /etc/systemd/system/alist.service添加以下内容,其中path_alist为alist所在的路径

[Unit]
Description=alist
After=network.target

[Service]
Type=simple
WorkingDirectory=path_alist
ExecStart=path_alist/alist-xxxx -conf data/config.json
Restart=on-failure

[Install]
WantedBy=multi-user.target

然后systemctl daemon-reload,现在你就可以使用这些命令来管理程序了:

  • 启动: systemctl start alist
  • 关闭: systemctl stop alist
  • 自启: systemctl enable alist
  • 状态: systemctl status alist
  • 重启: systemctl restart alist

Windows

当看到输出start server @ 0.0.0.0:5244且之后没有报错后,就表示运行成功了,首次运行会输出初始密码,程序默认监听5244端口,现在打开http://ip:5244就可以看见登陆页面了,webdav相关请看WebDav。Windows如果不想使用黑窗口模式运行可以使用如下.vbs脚本启动:

启动.vbs

Set ws = CreateObject("Wscript.Shell")
ws.run "alist-windows-4.0-amd64.exe",vbhide

停止.vbs

Dim Wsh
Set Wsh = WScript.CreateObject("WScript.Shell")
Wsh.Run "taskkill /f /im alist-windows-4.0-amd64.exe",0
Set Wsh=NoThing
WScript.quit

alist-windows-4.0-amd64.exe是你Alist程序的文件名,如果没改默认就是这个,放到和Alist启动程序同级目录即可

WindowsShell

https://www.bilibili.com/video/BV1DG411s7j5?t=268.1

使用Docker

初始密码请查看日志输出:

docker logs alist
# 或者
docker exec -it alist ./alist -password

稳定版

docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 --name="alist" xhofe/alist:latest

开发版

不推荐,这有可能无法正常使用

docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 --name="alist" xhofe/alist:v2

指定版本

具体见 https://hub.docker.com/r/xhofe/alist

挂载网盘

阿里云盘

token

官方获取token方式访问 或使用https://media.cooluc.com/decode_token/

根目录file_id

打开阿里云盘官网,点进去你要设置的文件夹时url后面的一串,如https://www.aliyundrive.com/drive/folder/5fe01e1830601baf774e4827a9fb8fb2b5bf7940 就是5fe01e1830601baf774e4827a9fb8fb2b5bf7940 file_id

OneDrive

如果你的账号不支持API,(比如学校账号未验证管理员,或者是管理员禁用了API),那么你还可以通过webdav的方式来挂载。具体见 webdav

视频教程

https://www.bilibili.com/video/BV1Rb4y1E7NV

First

首先打开https://tool.nn.ci/onedrive/request

创建应用

你也可以选择跳过此步,使用默认提供的client,但是需要组织管理员批准。

  • 在打开的页面,选择所在区域,点击创建应用
  • 登陆后选择「注册应用程序」,输入「名称」,选择「任何组织目录中的账户和个人」(注意这里不要看位置选择而是看文字,部分人可能是中间那个选项,不要选成单一租户或者其他选项,否则会导致登陆时出现问题),输入重定向 URL 为 https://tool.nn.ci/onedrive/callback ,「注册」即可,然后可以得到client_id client_id
  • 注册好应用程序之后,选择「证书和密码」,点击「新客户端密码」,输入一串密码,选择时间为最长的那个,点击「添加」 (注:在添加之后输入的密码之后会消失,请记录下来 client_secret 的值) client_secret
  • 选择「API 权限」,点击 「MicroSoft Graph」,在「选择权限」中输入 file,勾选 「Files.read」(注:Files.read 是只读最小权限,图中权限较大,也同样可以),点击「确定」 api

获取刷新令牌

将上一步骤中获得的client_id和client_secret填入https://tool.nn.ci/onedrive/request 这个页面,点击获取刷新令牌,就可以得到刷新令牌了

获取Sharepoint site_id

如果需要挂载Sharepoint,完成上一步后,在显示刷新令牌的界面会出现一个输入站点地址,输入站点地址后点击获取site_id即可。

添加账号

将上述过程中获取得到的值依次填入即可。

根目录路径

默认为/,如果需要自定义,就填路径就行,从根路径开始,和本地路径一样,比如/test

天翼云盘

个人云

使用189Cloud或者189CloudPc均可。区别为:

  • 189Cloud使用web端api
  • 189CloudPc使用客户端api

首选推荐使用 189CloudPC ,如正在使用189Cloud报错的重新添加一个189CloudPC即可修复

用户名

即用于登陆的手机号

密码

即用于登陆的密码

排序与排序方向

自行选择

根目录ID

与阿里云盘类似,官网url最后面一串,如:

家庭云

使用189CloudPc

使用电脑浏览器,打开开发者工具,切换仿真设备选择手机设备,打开https://h5.cloud.189.cn/main.html#/family ,进入你想挂载的文件夹,可在网络中看到请求,然后找到所需参数:

189family

视频教程

https://www.bilibili.com/video/BV16A4y197De

添加天翼云盘时:设备ID不存在,需要二次设备校验

可能是触发了防控,修改密码后重新添加。

谷歌云盘

谷歌云盘官方文档给出的说明较少 所以我也是自己瞎捣鼓的 昨天捣鼓好了今天就忘了 我也没办法了 官方给出的工具 利用工具捣鼓吧 希望有大佬可以在评论区留下方法 我捣鼓好了就忘了:xiaoku:

123云盘

https://www.123pan.com/

填写账号密码即可。

用户名

即用于登陆的手机号

密码

即用于登陆的密码

根目录file_id

与阿里云盘类似,官网url最后面一串,如: 123

蓝奏云

由于每个人的链接可能不一样,所以cookie挂载也需要填写share url,随便一个分享链接就可以。

cookie

  • 找到douload.php 然后即可找到ck 根目录file_id按照下图来获取 默认根目录的话填写-1即可
  • ### share url

只填写外链分享地址与分享密码即可。 蓝奏云的分享只能分享一个文件夹内的文件,所以看不到文件夹是正常现象。 另外lanzou type记得选择为cookie

百度云盘

刷新令牌

点此获取刷新令牌。

根目录路径

要挂载的根目录,默认为/

Download api

  • official: 官方接口,非常稳定,但是对于较大文件需要修改UA且速度慢

  • crack:非官方接口,无需修改UA且部分文件可能不限速,但是可能会不稳定

    夸克网盘

找到如图的这个 然后pdir_fid后的为根目录file_id 往下翻即可翻找到cookie

迅雷网盘

下载报错临时解决方案

访问xxxxxx-aliyun04-vip-lixian.xunlei.com的请求遭到拒绝

您未授权,无法查看此网页

HTTP ERROR 403

  1. 可以下载器手动指定ua AndroidDownloadManager/11 (Linux; U; Android 11; M2004J7AC) (链接不限速)
  2. 或者后台设置ua为 AndroidDownloadManager/11 (Linux; U; Android 11; M2004J7AC) Alist添加账号里面开启代理,需要重启alist(链接限速) 以上两个选项就是这个问题的临时解决方法

推荐你看这个视频来了解如何添加:

**https://www.bilibili.com/video/BV1yu411z7ZF/**## 纯享版-一镜到底:

**https://www.bilibili.com/video/BV18v4y1N7AY/**## 图片操作

XunLei1


XunLei2


XunLei3


XunLei4

不填默认为根目录

其他网盘

如果你还想添加其他网盘账号请查看官方文档

其他功能

Alist后台选择元消息 即可自定义一些功能 如 密码查看 隐藏文件 游客自行上传文件等等 其他的我不需要赘述 路径的话教大家一个笨方法 比如我想加密这个文件夹 只需要复制我加深那段文字丢到后台路径那里即可. 再例如我想隐藏这个路径下 045922.mp4这个文件只需要如图这样子填写 简单易懂 教程就到这里了

THE END