
| 类型 | 文件列表程序 |
| 语言 | Go |
| 特色 | 多网盘聚合 / WebDAV |
| 官网 | alist.nn.ci |
Alist 是一款用 Go 语言编写的开源文件列表程序,核心定位是将阿里云盘、百度网盘、OneDrive、Google Drive、Dropbox、123云盘、天翼云盘、夸克网盘、迅雷云盘、S3 对象存储、FTP、SFTP 等数十种存储后端统一聚合到同一个 Web 界面与 API 接口之下,让用户无需分别登录各个平台即可浏览、预览和分发文件。
Alist 由国内开发者 Xhofe 于 2021 年末在 GitHub 发布初始版本,最初仅支持阿里云盘一种存储,因阿里云盘当时尚无官方分享直链而迅速获得关注。随后作者以驱动插件化的方式持续扩充支持的存储种类,至 2024 年已覆盖超过 40 种存储后端。项目采用 AGPL-3.0 许可证,前端基于 SolidJS 构建,后端纯 Go 实现,二进制体积小、跨平台发布。项目在 GitHub 上积累了数万星标,成为自托管网盘聚合领域使用最广泛的工具之一。2023 年前后,Alist 的 WebDAV 功能日趋成熟,使其可直接作为 Infuse、nPlayer、Kodi 等媒体播放器的内容源,进一步扩大了用户群体。
Alist 后端采用单二进制发布模式,内嵌前端静态资源,启动后监听指定端口即可提供完整服务。核心架构分为驱动层、虚拟文件系统层和 API 层三部分。驱动层为每种存储后端实现统一接口,包括列目录、获取下载链接、上传、删除、重命名、复制等操作。虚拟文件系统层维护一棵内存中的挂载树,将不同存储的路径前缀映射到对应驱动实例。API 层基于 Gin 框架提供 REST 接口,前端通过这些接口渲染文件列表和执行操作。
对于需要 OAuth 授权的网盘(如 OneDrive、Google Drive),Alist 在添加存储时引导用户完成授权并持久化 Access Token 与 Refresh Token 到 SQLite 数据库,后台定时任务负责在 Token 过期前自动刷新。对于阿里云盘等使用扫码或手机号登录的平台,Alist 采用平台提供的开放接口或逆向所得接口获取 Token。Alist 本身不缓存文件内容,仅缓存目录列表(可配置缓存时长),所有文件传输均直接转发或重定向到源存储。
数据存储方面,Alist 默认使用 SQLite,高并发场景下可切换为 MySQL 或 PostgreSQL。配置文件为 YAML 格式,位于数据目录下,支持 Docker Compose 中以环境变量注入所有关键参数。
Alist 提供多种部署方式:直接下载对应平台的预编译二进制文件运行是最简方式,适合 NAS 用户和 VPS 用户;官方提供 Docker 镜像 xhofe/alist,通过挂载数据目录持久化配置;针对群晖、威联通、铁威马等 NAS 平台有对应的套件或第三方安装脚本。反向代理方面,官方文档给出了 Nginx 和 Caddy 的配置示例,重点是正确传递 X-Forwarded-For 头并配置足够大的请求体上限以支持上传。
首次运行时,Alist 会自动生成管理员账号的随机密码并打印到日志,用户需通过命令行或在 Web 后台修改。数据目录迁移时只需复制整个数据目录(含 SQLite 文件)到新机器即可,存储驱动的 Token 均存于数据库中无需重新授权(OAuth Token 除外,因与域名绑定)。社区生态方面,有基于 Alist WebDAV 的 rclone 挂载脚本、Alist 与 Emby/Jellyfin 联动的直链播放方案,以及各类 NAS 系统的一键部署教程。
使用 Alist 挂载商业网盘存在违反对应平台服务条款的风险,尤其是利用直链对外大量分发受版权保护的内容可能导致账号封禁甚至法律风险。各云盘平台对 API 调用频率有限制:阿里云盘对单账号每日列目录和下载请求有配额,超出后会触发限速或短暂封锁;百度网盘的个人版 API 在未获官方资质的情况下限速极为严格。
安全配置方面,生产环境中应务必修改默认管理员密码,启用 HTTPS(通过反向代理或 Alist 内置的证书支持),并考虑在 Nginx 层添加基础认证或 IP 白名单保护管理后台路径。若 Alist 暴露在公网,应关闭或限制游客访问权限,避免成为未授权的文件分发节点。WebDAV 接口同样应避免使用弱密码,因为许多自动化扫描器会尝试常见凭据对 WebDAV 端点进行暴力破解。对于存储 Token 的 SQLite 数据库文件,应确保其所在目录权限设置为仅 Alist 进程可读,防止服务器上其他用户窃取网盘授权凭据。

| 类型 | 文件列表程序 |
| 语言 | Go |
| 特色 | 多网盘聚合 / WebDAV |
| 官网 | alist.nn.ci |
登录 后参与讨论
暂无讨论,来发表第一条评论吧